{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> https://www.kaggle.com/omarelgabry/a-journey-through-titanic"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 导包\n",
    "- pandas, numpy, matplotlib, seaborn, sklearn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Imports\n",
    "\n",
    "# pandas\n",
    "import pandas as pd\n",
    "from pandas import Series,DataFrame\n",
    "\n",
    "# numpy, matplotlib, seaborn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "sns.set_style('whitegrid')\n",
    "%matplotlib inline\n",
    "\n",
    "# machine learning\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.svm import SVC, LinearSVC\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.naive_bayes import GaussianNB"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 导入数据\n",
    "\n",
    "- 存储为DataFrame格式\n",
    "- 查看数据的前几行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C85</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>C123</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  \\\n",
       "0            1         0       3   \n",
       "1            2         1       1   \n",
       "2            3         1       3   \n",
       "3            4         1       1   \n",
       "4            5         0       3   \n",
       "\n",
       "                                                Name     Sex   Age  SibSp  \\\n",
       "0                            Braund, Mr. Owen Harris    male  22.0      1   \n",
       "1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   \n",
       "2                             Heikkinen, Miss. Laina  female  26.0      0   \n",
       "3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
       "4                           Allen, Mr. William Henry    male  35.0      0   \n",
       "\n",
       "   Parch            Ticket     Fare Cabin Embarked  \n",
       "0      0         A/5 21171   7.2500   NaN        S  \n",
       "1      0          PC 17599  71.2833   C85        C  \n",
       "2      0  STON/O2. 3101282   7.9250   NaN        S  \n",
       "3      0            113803  53.1000  C123        S  \n",
       "4      0            373450   8.0500   NaN        S  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic_df = pd.read_csv(\"../input/train.csv\")\n",
    "test_df    = pd.read_csv(\"../input/test.csv\")\n",
    "\n",
    "# preview the data\n",
    "titanic_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 查看数据的信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 891 entries, 0 to 890\n",
      "Data columns (total 12 columns):\n",
      "PassengerId    891 non-null int64\n",
      "Survived       891 non-null int64\n",
      "Pclass         891 non-null int64\n",
      "Name           891 non-null object\n",
      "Sex            891 non-null object\n",
      "Age            714 non-null float64\n",
      "SibSp          891 non-null int64\n",
      "Parch          891 non-null int64\n",
      "Ticket         891 non-null object\n",
      "Fare           891 non-null float64\n",
      "Cabin          204 non-null object\n",
      "Embarked       889 non-null object\n",
      "dtypes: float64(2), int64(5), object(5)\n",
      "memory usage: 83.6+ KB\n",
      "----------------------------\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 418 entries, 0 to 417\n",
      "Data columns (total 11 columns):\n",
      "PassengerId    418 non-null int64\n",
      "Pclass         418 non-null int64\n",
      "Name           418 non-null object\n",
      "Sex            418 non-null object\n",
      "Age            332 non-null float64\n",
      "SibSp          418 non-null int64\n",
      "Parch          418 non-null int64\n",
      "Ticket         418 non-null object\n",
      "Fare           417 non-null float64\n",
      "Cabin          91 non-null object\n",
      "Embarked       418 non-null object\n",
      "dtypes: float64(2), int64(4), object(5)\n",
      "memory usage: 36.0+ KB\n"
     ]
    }
   ],
   "source": [
    "titanic_df.info()\n",
    "print(\"----------------------------\")\n",
    "test_df.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 删除一些不必要的属性，因为在分析和预测中没什么用\n",
    "- 'PassengerId','Name','Ticket'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "titanic_df = titanic_df.drop(['PassengerId','Name','Ticket'], axis=1)\n",
    "test_df    = test_df.drop(['Name','Ticket'], axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 对各个特征进行处理\n",
    "## 1. Embarked\n",
    "- 乘客从哪个地方登上泰坦尼克号\n",
    "- 使用出现最多的S进行缺失值填充\n",
    "- 删除embarked列，因为对预测没有多大贡献，同时使用get_dummies把CQ进行编码，删除S"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1gAAAEYCAYAAABBWFftAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl81eWd//3XyXISEkJISCAkhyUbFwFkSRARFSGopS6g\nhmnVLnZx1Co4M73bue92+mtn7Mzc/mZ69zcW0GqtXadqh7jgUq0aNlEEEnbCBVlYTgIJSSAJ2ZNz\n7j8SQ4IsUc7hZHk/Hw8eJ9/r+n5PPmljznmf77U4vF4vIiIiIiIicvmCAl2AiIiIiIjIYKGAJSIi\nIiIi4iMKWCIiIiIiIj6igCUiIiIiIuIjClgiIiIiIiI+EhLoAi5Hfn6+NysrK9BliIiIiIjI0OM4\nX6PuYImIiIiIiPiIApaIiIiIiIiPKGCJiIiIiIj4iAKWiIiIiIiIjyhgiYiIiIiI+IgCloiIiIiI\niI8oYImIiIiIiPiIApaIiIiIiIiPKGCJiIiIiIj4iAKWiIgMOXkHKvjyMx+Rd6Ai0KWIiMggExLo\nAkRERK60n797kL1ldTS0tpM9eUygyxERkUFEd7BERGTIaWjp6PUoIiLiKwpYIiIiIiIiPqKAJSIi\nIiIi4iMKWCIiIiIiIj6igCUiIiIiIuIjClgiIiIiIiI+ooAlIiIiIiLiIwpYIiIiIiIiPqKAJSIi\nIiIi4iMKWCIiIiIiIj6igCUiIiIiIuIjClgiIiIiIiI+ooAlIiIiIiLiIwpYIiIiIiIiPqKAJSIi\nIiIi4iMh/nxyY8xi4EkgGHjOWvvEec75EvDPgBfYZa29r6v9fuBHXaf9q7X2d/6sVURERERE5HL5\n7Q6WMSYYWA18EZgC3GuMmXLOOenAD4DrrLVTgb/vao8FfgJcA8wBfmKMifFXrSIiIiIiIr7gzyGC\nc4Aia22JtbYVeBFYes45fwusttaeArDWVna1fwF411pb09X3LrDYj7WKiIiIiIhcNn8OEUwCjvU4\ndtN5R6qnSQDGmM10DiP8Z2vt2xe4Nul836SwsNBX9YqIyBDR2tra/ajXERER+TwyMjLO2+7XOVh9\nEAKkAwsAF7DRGHPVZ3mCC/1gIiIiF+J8swJow+l06nVERER8yp9DBMuAcT2OXV1tPbmBtdbaNmtt\nKXCQzsDVl2tFRERERET6FX/ewdoGpBtjkukMR/cA951zzqvAvcBvjDFxdA4ZLAGKgX/vsbDFLXQu\nhiEiIiIiItJv+e0OlrW2HVgOvAMUAn+21u4zxjxujFnSddo7QLUxZj+wDvi+tbbaWlsD/JTOkLYN\neLyrTUREREREpN9yeL3eQNfwueXn53uzsrICXYaIiAwwC3+2ntKqBpLjIln3vQWBLkdERAYmx/ka\n/TkHS0REREREZEhRwBIREREREfERBSwREREREREfUcASERERERHxEQUsERERERERH1HAEhERERER\n8REFLBERERERER9RwBIREREREfERBSwREREREREfUcASERERERHxEQUsERERERERH1HAEhERERER\n8REFLBERERERER9RwBIREREREfERBSwREREREREfUcASERERERHxEQUsERERERERH1HAEhGRIcXr\n9dLW4QGgw+MNcDUiIjLYKGCJiMiQsaWkmttXfoD7VBMAx2oa+cHLe2hoaQ9wZSIiMliEBLoAERGR\nKyH/SA1f+/XHtHWcvWvlBV7YepTDVQ388YFrCA5yBK5AEREZFHQHS0REhoT/fMf2Clc9fVRSzYaD\nlVe4IhERGYz8egfLGLMYeBIIBp6z1j5xTv83gP8EyrqaVllrn+vq6wD2dLUftdYu8WetIiIyeNU2\ntrGlpOai57y99wTZk8dcoYpERGSw8lvAMsYEA6uBmwE3sM0Ys9Zau/+cU1+y1i4/z1M0WWtn+qs+\nEREZOirrmy95zgZ7kjd3H2dRxmjCQ4OvQFUiIjIY+fMO1hygyFpbAmCMeRFYCpwbsERERPyi+kwL\nz31Qyh8+OnLJcyvqW3j0TwVEDwvljhljycl0MXPcSBwOzcsSEZG+82fASgKO9Th2A9ec57wcY8x8\n4CDwD9baT64JN8ZsB9qBJ6y1r57vmxQWFvqwZBERGQxqGttZs6+Wt2wdLReYd9VTkAM+WbG9tqmN\nP245yh+3HMU1IpSb0oaTnRJFfKTWhRIRkbMyMjLO2x7oV4vXgRestS3GmIeA3wHZXX0TrLVlxpgU\nIM8Ys8daW3zuE1zoBxMRkaGn7HQTv1xfzEvb3bS2e7rbo8JD+Ma1Ezl5poUXtx3rdU3ccCfP3X81\nzuAgcgvcvLazjKozrQC469r4bcEpfrfjFNelxpGTlcTiqWMZ5tQQQhEROT9/BqwyYFyPYxdnF7MA\nwFpb3ePwOeA/evSVdT2WGGPWA7OATwUsERGRI9UNPLWumNwCN+09Ng8eGRHKA9cn87VrJxI9LBSA\n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\nuGls7ehuj3AG89W5E3jghmRGR4UHoGoRERHpz5xvVnC+9xYiF+LPgLUNSDfGJNMZrO4B7ut5gjEm\n3Vp7qOvwNuBQV3s8UGOt7TDGpADpQIkfa5UBrLXdw8q8Q/xxyxFOdQ33O1HbxL7yWmIinDy7sYQX\nth6lpd3TfU1UWAj3z5vIt65PJjbSGajSRURERGSQ8VvAsta2G2OWA+/QuUz789bafcaYx4Ht1tq1\nwHJjzE1AG3CKzuGBAPOBx40xbYAHeNhaW+OvWmXg8nq9rHihgHf2VfRqb2rzsHTVZgDaPWeHAo6M\nCOVb1yVz/7yJRA8LvaK1ioiIiMjg59c5WNbat4C3zmn7cY+v/+4C1+UCuf6sTQaHD4urPxWuPtEz\nWMUNd/LADSl8de4EhocFfOqhiIiIiAxSeqcpA9obu8svec4/LjZ8c14yw5zBV6AiERERERnKggJd\ngMjlONPScclz7p7lUrgSERERkStCAUsGtCljR1y0Pz4qjPiosCtUjYiIiIgMdQpYMqD9zWwXkRe5\nO/X1uRMIDnJcwYpEREREZChTwJIBLW54GM98bTaRYZ8OWUtmJPKdBakBqEpEREREhioFLBnwrk+P\nY9M/ZvPDWyczvCtojY0O58l7ZhISrF9xEREREbly9O5TBoXYSCcPzk8lPiocgPDQYBwODQ0UERER\nkStLAUtERERERMRHFLBERERERER8RAFLRERERETERxSwREREREREfEQBS0RERERExEcUsERERERE\nRHxEAUtERERERMRHFLBERERERER8RAFLRERERETERxSwREREREREfEQBS0RERERExEcUsERERERE\nRHxEAUtERERERMRHFLBERERERER8RAFLRERERETER0L8+eTGmMXAk0Aw8Jy19olz+h8GHgU6gDPA\ng9ba/V19PwC+3dX3mLX2HX/WKiIiIiIicrn8dgfLGBMMrAa+CEwB7jXGTDnntD9Za6+y1s4E/gP4\nede1U4B7gKnAYuCprucTuajIsOBejyIiIiIiV5I/hwjOAYqstSXW2lbgRWBpzxOstXU9DiMBb9fX\nS4EXrbUt1tpSoKjr+UQu6rs3T2JuSizfvXlSoEsRERERkSHIn0MEk4BjPY7dwDXnnmSMeRT4LuAE\nsntcu+Wca5PO900KCwt9UasMEmOBn9wwErw1FBbWBLocERERGeBaW1u7H/W+U3rKyMg4b7tf52D1\n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\n9okAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2a04490>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3cAAAE5CAYAAAAz/tkjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYHVWZ6P9vEghguETBEzMQDTPElyAiEATmZGZAEOU2\nhFEEogMBozAeULl4iYwCBlG8weQnTJQRMPgbSTIohxyNV4RhRMGkUUFoXrlDckCuch2CiX3+qOq4\naTpJd7J3197V38/z7KerVq2q/fbu/ayut2rVWiN6enqQJEmSJHW2kVUHIEmSJEnacCZ3kiRJklQD\nJneSJEmSVAMmd5IkSZJUAyZ3kiRJklQDJneSJEmSVAMbVR3AYHV1dTl3g1RDU6ZMGVF1DBvCtkmq\nJ9smSe2qv/ap45I7gClTplQdgqQm6urqqjqEprBtkurFtklSu1pT+2S3TEmSJEmqAZM7SZIkSaoB\nkztJkiRJqgGTO0mSJEmqAZM7SZIkSaoBkztJkiRJqgGTO0mSJEmqAZM7SZI0KJMnT2batGmrXxdf\nfPGA973ppps48cQTN+j9jznmGG699db12rcZ7y9J7aojJzGXJEnV2XTTTbn66qsree9Vq1ZV8r6S\n1AlM7iRJUlPst99+HHLIIVx//fWMGjWKc845h/PPP5/777+fmTNnMn36dACeffZZTjjhBO6//372\n2msvzj77bEaOHMlZZ53FrbfeyooVK3j729/Ohz70odXHPeigg/j5z3/O+973vtXv96c//YkzzjiD\ncePGceqpp/Kzn/2Mr3zlK7z44otMmDCBz33uc4wZM4brr7+ez372s2y22WZMmTKlks9GkoZC7ZK7\nKR+9vOoQKtf1xWOrDkGSVGqH/0vN/r/wwgsvMG3atNXrJ554IgcffDAA48eP5+qrr+azn/0ss2bN\n4oorruDFF1/k0EMPXZ3c3XLLLSxevJi/+Iu/4H3vex8/+tGPOPDAAzn11FMZO3Ysq1at4rjjjuOO\nO+5gxx13BGDs2LFcddVVAMyfP59Vq1bxkY98hEmTJvGBD3yAJ554grlz53LZZZfxile8gosvvpjL\nLruM97///XzqU59i3rx5vO51r+OUU05p6mch9Xpg9hurDqFyrz1z/bpLq3lql9xJkqTWWlu3zP33\n3x+A17/+9Tz//PNsvvnmAIwePZqnn34agF122YUJEyYAcMghh9DV1cWBBx7I97//fRYuXMjKlSt5\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2a04590>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "titanic_df[\"Embarked\"] = titanic_df[\"Embarked\"].fillna(\"S\")\n",
    "\n",
    "# plot\n",
    "sns.factorplot('Embarked','Survived', data=titanic_df,size=4,aspect=3)\n",
    "\n",
    "fig, (axis1,axis2,axis3) = plt.subplots(1,3,figsize=(15,5))\n",
    "\n",
    "sns.countplot(x='Embarked', data=titanic_df, ax=axis1)\n",
    "sns.countplot(x='Survived', hue=\"Embarked\", data=titanic_df, order=[1,0], ax=axis2)\n",
    "\n",
    "# group by embarked, and get the mean for survived passengers for each value in Embarked\n",
    "embark_perc = titanic_df[[\"Embarked\", \"Survived\"]].groupby(['Embarked'],as_index=False).mean()\n",
    "sns.barplot(x='Embarked', y='Survived', data=embark_perc,order=['S','C','Q'],ax=axis3)\n",
    "\n",
    "embark_dummies_titanic  = pd.get_dummies(titanic_df['Embarked'])\n",
    "embark_dummies_titanic.drop(['S'], axis=1, inplace=True)\n",
    "\n",
    "embark_dummies_test  = pd.get_dummies(test_df['Embarked'])\n",
    "embark_dummies_test.drop(['S'], axis=1, inplace=True)\n",
    "\n",
    "titanic_df = titanic_df.join(embark_dummies_titanic)\n",
    "test_df    = test_df.join(embark_dummies_test)\n",
    "\n",
    "titanic_df.drop(['Embarked'], axis=1,inplace=True)\n",
    "test_df.drop(['Embarked'], axis=1,inplace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Fare\n",
    "- 船票费用\n",
    "- 只有test数据中有缺失值，用中位数填充"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7c041d0>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA34AAAC+CAYAAABqKd09AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFYhJREFUeJzt3X+sXGWZwPHvpVRAZW34Ya1tTXGpjxdZLRQRg66IwaCg\nxY0irEJVou4G4xLZXSoxYjRNMFHY7q5LRFGKq2IFka7gKlRW1j9AHCSCjk/EWpfWQl0tv9RbtnX2\nj3kvTGpvO/fHuXPuud9PMplz3vOemac3z53pc8973neo0+kgSZIkSWqu/QYdgCRJkiSpWhZ+kiRJ\nktRwFn6SJEmS1HAWfpIkSZLUcBZ+kiRJktRw+w86gPFqtVpOQypJkiRpVlu+fPnQePrPuMIPYPny\n5YMOQfoT7Xab4eHhQYch7ZH5qboyN1VX5qbqrNVqjfsch3pKkiRJUsNZ+EmSJElSw1U21DMiDgRu\nBw4o73NdZl4SEVcDrwIeKV3fkZn3RMQQsAZ4PfD70n53VfFJkiRJ0mxR5T1+O4CTM/PxiJgLfC8i\nvlmO/UNmXrdb/9cBS8vjZcAV5VmSJEmSNAmVDfXMzE5mPl5255bH3mbkXAFcU867A5gXEQuqik+S\nJEmSZotKZ/WMiDlACzgS+FRm3hkRfwusjogPAxuAVZm5A1gIPNBz+ubStnX3122321WGLU3IyMiI\nuanaMj9VV+am6srcVNNUWvhl5i5gWUTMA26IiKOBDwIPAk8DrgQuAj46ntd1at2ptWTVTYMOoZE2\nXXraoEOQnuS05Korc1N1ZW6qzmq7nENmPgzcBpyamVvLcM4dwOeB40u3LcDintMWlTZJkiRJ0iRU\nVvhFxOHlSh8RcRBwCvDT0fv2yiyeZwD3lVPWA+dGxFBEnAA8kpl/MsxTkiRJkjQ+VQ71XACsLff5\n7Qesy8xvRMR3IuJwYAi4B/ib0v9muks53E93OYd3VhibJEmSJM0alRV+mfkj4Jg9tJ88Rv8OcH5V\n8UiSJEnSbDUt9/hJkiRJkgbHwk+SJEmSGs7CT5IkSZIazsJPkiRJkhrOwk+SJEmSGs7CT5IkSZIa\nzsJPkiRJkhrOwk+SJEmSGs7CT5IkSZIazsJPkiRJkhrOwk+SJEmSGs7CT5IkSZIazsJPkiRJkhpu\n/6peOCIOBG4HDijvc11mXhIRRwDXAocCLeCczHwiIg4ArgGWA78B3pqZm6qKT5IkSZJmiyqv+O0A\nTs7MlwDLgFMj4gTg48DlmXkksB04r/Q/D9he2i8v/SRJkiRJk1RZ4ZeZncx8vOzOLY8OcDJwXWlf\nC5xRtleUfcrx10TEUFXxSZIkSdJsUdlQT4CImEN3OOeRwKeAnwMPZ+bO0mUzsLBsLwQeAMjMnRHx\nCN3hoP+7++u22+0qw5amhHmqOhkZGTEnVUvmpurK3FTTVFr4ZeYuYFlEzANuAF44Fa87PDw8FS+j\nJ20cdACNZJ6qTtrttjmpWjI3VVfmpuqs1WqN+5xpmdUzMx8GbgNeDsyLiNGCcxGwpWxvARYDlOPP\nojvJiyRJkiRpEior/CLi8HKlj4g4CDgFaNMtAN9cuq0Ebizb68s+5fh3MrNTVXySJEmSNFtUecVv\nAXBbRPwIuAu4JTO/AVwEfCAi7qd7D99Vpf9VwKGl/QPAqgpjkyRJkqRZo7J7/DLzR8Axe2jfCBy/\nh/YR4C1VxSNJkiRJs9W03OMnSZIkSRocCz9JkiRJajgLP0mSJElqOAs/SZIkSWo4Cz9JkiRJajgL\nP0mSJElqOAs/SZIkSWo4Cz9JkiRJajgLP0mSJElqOAs/SZIkSWo4Cz9JkiRJajgLP0mSJElqOAs/\nSZIkSWq4/at64YhYDFwDzAc6wJWZuSYiPgK8G/h16XpxZt5czvkgcB6wC3h/Zn6rqvgkSZIkabao\nrPADdgIXZubdEXEw0IqIW8qxyzPzE72dI+Io4CzgRcBzgVsj4gWZuavCGCVJkiSp8Sob6pmZWzPz\n7rL9GNAGFu7llBXAtZm5IzN/AdwPHF9VfJIkSZI0W1R5xe9JEbEEOAa4EzgReF9EnAv8gO5Vwe10\ni8I7ek7bzBiFYrvdrjReaSqYp6qTkZERc1K1ZG6qrsxNNU3lhV9EPBO4HrggMx+NiCuAj9G97+9j\nwCeBd43nNYeHh6c8ztlt46ADaCTzVHXSbrfNSdWSuam6MjdVZ61Wa9znVFr4RcRcukXfFzPzawCZ\n+VDP8c8A3yi7W4DFPacvKm2SJEmSpEmo7B6/iBgCrgLamXlZT/uCnm5vAu4r2+uBsyLigIg4AlgK\nfL+q+CRJkiRptqjyit+JwDnAvRFxT2m7GDg7IpbRHeq5CXgvQGb+OCLWAT+hOyPo+c7oKUmSJEmT\nV1nhl5nfA4b2cOjmvZyzGlhdVUySJEmSNBtVNtRTkiRJklQPfRV+EfEXVQciSZIkSapGv0M9/y0i\nDgCupjtD5yPVhSRJkiRJmkp9XfHLzFcCb6O73EIrIr4UEadUGpkkSZIkaUr0fY9fZv4M+BBwEfAq\n4J8j4qcR8VdVBSdJkiRJmrx+7/F7cURcDrSBk4E3ZOZw2b68wvgkSZIkSZPU7z1+/wJ8Frg4M/8w\n2piZv4qID1USmSRJkiRpSvRb+J0G/GF0QfWI2A84MDN/n5lfqCw6SZIkSdKk9XuP363AQT37Ty9t\nkiRJkqSa67fwOzAzHx/dKdtPryYkSZIkSdJU6rfw+11EHDu6ExHLgT/spb8kSZIkqSb6vcfvAuCr\nEfErYAh4DvDWyqKSJEmSJE2Zvgq/zLwrIl4IxFNN+X/VhSVJkiRJmip9L+AOvBR4MXAscHZEnFtN\nSJIkSZKkqdTXFb+I+ALw58A9wK7S3AGu2cs5i8vx+aXvlZm5JiIOAb4CLAE2AWdm5vaIGALWAK8H\nfg+8IzPvnsC/SZIkSZLUo997/I4DjsrMzjheeydwYWbeHREHA62IuAV4B7AhMy+NiFXAKuAi4HXA\n0vJ4GXBFeZYkSZIkTUK/Qz3vozuhS98yc+voFbvMfAxoAwuBFcDa0m0tcEbZXgFck5mdzLwDmBcR\nC8bznpIkSZKkP9XvFb/DgJ9ExPeBHaONmfnGfk6OiCXAMcCdwPzM3FoOPUh3KCh0i8IHek7bXNq2\nspt2u91n2NLgmKeqk5GREXNStWRuqq7MTTVNv4XfRyb6BhHxTOB64ILMfDQinjyWmZ2IGM/wUQCG\nh4cnGo72aOOgA2gk81R10m63zUnVkrmpujI3VWetVmvc5/Q11DMzv0t3Ipa5ZfsuYJ8Tr0TEXLpF\n3xcz82ul+aHRIZzleVtp3wIs7jl9UWmTJEmSJE1CX4VfRLwbuA74dGlaCHx9H+cMAVcB7cy8rOfQ\nemBl2V4J3NjTfm5EDEXECcAjPUNCJUmSJEkT1O9Qz/OB4+neo0dm/iwinr2Pc04EzgHujYh7StvF\nwKXAuog4D/glcGY5djPdpRzup7ucwzv7/UdIkiRJksbWb+G3IzOfGL0/LyL2p7s235gy83vA0BiH\nX7OH/h26BaYkSZIkaQr1u5zDdyPiYuCgiDgF+CrwH9WFJUmSJEmaKv0WfquAXwP3Au+lOyzzQ1UF\nJUmSJEmaOn0N9czMPwKfKQ9JkiRJ0gzSV+EXEb9gD/f0ZebzpzwiSZIkSdKU6ndyl+N6tg8E3gIc\nMvXhSJIkSZKmWr9DPX+zW9M/RUQL+PDUhyRJkiRJmkr9DvU8tmd3P7pXAPu9WihJkiRJGqB+i7dP\n9mzvBDbx1MLrkiRJkqQa63eo56urDkSSJEmSVI1+h3p+YG/HM/OyqQlHkiRJkjTVxjOr50uB9WX/\nDcD3gZ9VEZQkSZIkaer0W/gtAo7NzMcAIuIjwE2Z+faqApMkSZIkTY39+uw3H3iiZ/+J0iZJkiRJ\nqrl+r/hdA3w/Im4o+2cAa/d2QkR8Djgd2JaZR5e2jwDvBn5dul2cmTeXYx8EzgN2Ae/PzG+N498h\nSZIkSRpDv7N6ro6IbwKvLE3vzMwf7uO0q4F/pVs09ro8Mz/R2xARRwFnAS8CngvcGhEvyMxd/cQn\nSZIkSRpbv0M9AZ4OPJqZa4DNEXHE3jpn5u3Ab/t87RXAtZm5IzN/AdwPHD+O2CRJkiRJY+h3OYdL\n6M7sGcDngbnAvwMnTuA93xcR5wI/AC7MzO3AQuCOnj6bS9setdvtCbytNL3MU9XJyMiIOalaMjdV\nV+ammqbfe/zeBBwD3A2Qmb+KiIMn8H5XAB8DOuX5k8C7xvsiw8PDE3hrjW3joANoJPNUddJut81J\n1ZK5qboyN1VnrVZr3Of0O9Tziczs0C3YiIhnjPudgMx8KDN3ZeYfgc/w1HDOLcDinq6LSpskSZIk\naZL6LfzWRcSngXkR8W7gVrqF27hExIKe3TcB95Xt9cBZEXFAuXdwKd0F4iVJkiRJk9TvrJ6fiIhT\ngEfp3uf34cy8ZW/nRMSXgZOAwyJiM3AJcFJELKN75XAT8N7y+j+OiHXAT4CdwPnO6ClJkiRJU2Of\nhV9EzAFuzcxXA3st9npl5tl7aL5qL/1XA6v7fX1JkiRJUn/2OdSzXHn7Y0Q8axrikSRJkiRNsX5n\n9XwcuDcibgF+N9qYme+vJCpJkiRJ0pTpt/D7WnlIkiRJkmaYvRZ+EfG8zPyfzFw7XQFJkiRJkqbW\nvu7x+/roRkRcX3EskiRJkqQK7KvwG+rZfn6VgUiSJEmSqrGvwq8zxrYkSZIkaYbY1+QuL4mIR+le\n+TuobFP2O5n5Z5VGJ0mSJEmatL0Wfpk5Z7oCkZpmyaqbBh1CI2269LRBhyBJkjTj7HMBd0mSJEnS\nzGbhJ0mSJEkNZ+EnSZIkSQ1n4SdJkiRJDWfhJ0mSJEkNt6/lHCYsIj4HnA5sy8yjS9shwFeAJcAm\n4MzM3B4RQ8Aa4PXA74F3ZObdVcUmSZIkSbNJlVf8rgZO3a1tFbAhM5cCG8o+wOuApeXxHuCKCuOS\nJEmSpFmlsit+mXl7RCzZrXkFcFLZXgv8F3BRab8mMzvAHRExLyIWZObWquKTJKlKruU5Hhv77ula\nnpI0MZUVfmOY31PMPQjML9sLgQd6+m0ubXss/NrtdmUBSqo3f/8nZmRkxJ+dGsE81nTxc1NNM92F\n35MysxMRnYmcOzw8PNXhzHL9/6VVGjR//yem3W77s5t2frZWwTzWdPFzU3XWarXGfc50z+r5UEQs\nACjP20r7FmBxT79FpU2SJEmSNEnTXfitB1aW7ZXAjT3t50bEUEScADzi/X2SJEmSNDWqXM7hy3Qn\ncjksIjYDlwCXAusi4jzgl8CZpfvNdJdyuJ/ucg7vrCouSZIkSZptqpzV8+wxDr1mD307wPlVxSJJ\nkiRJs9l0D/WUJEmSJE0zCz9JkiRJajgLP0mSJElqOAs/SZIkSWo4Cz9JkiRJajgLP0mSJElqOAs/\nSZIkSWo4Cz9JkiRJajgLP0mSJElqOAs/SZIkSWo4Cz9JkiRJajgLP0mSJElqOAs/SZIkSWq4/Qfx\nphGxCXgM2AXszMzjIuIQ4CvAEmATcGZmbh9EfJIkSZLUJIO84vfqzFyWmceV/VXAhsxcCmwo+5Ik\nSZKkSarTUM8VwNqyvRY4Y4CxSJIkSVJjDGSoJ9ABvh0RHeDTmXklMD8zt5bjDwLzxzq53W5PQ4iS\n6sjf/4kZGRnxZ6dGMI81XfzcVNMMqvB7RWZuiYhnA7dExE97D2ZmpxSFezQ8PFx5gLPLxkEHIPXN\n3/+Jabfb/uymnZ+tVTCPNV383FSdtVqtcZ8zkKGembmlPG8DbgCOBx6KiAUA5XnbIGKTJEmSpKaZ\n9sIvIp4REQePbgOvBe4D1gMrS7eVwI3THZskSZIkNdEghnrOB26IiNH3/1Jm/mdE3AWsi4jzgF8C\nZw4gNkk1t2TVTYMOYQZz6KEkSbPVtBd+mbkReMke2n8DvGa645EkSZKkpqvTcg6SJEmSpApY+EmS\nJElSww1qOQdJkqRx8z7famy69LRBhyCpYl7xkyRJkqSGs/CTJEmSpIaz8JMkSZKkhrPwkyRJkqSG\ns/CTJEmSpIZzVk9JkqRZztlSx7Jxwmc6U6rqZkYWfn44SZIkSVL/HOopSZIkSQ1n4SdJkiRJDTcj\nh3pKkiRJdeatSarS9W95zrjPqV3hFxGnAmuAOcBnM/PSAYckSZIkSTNarYZ6RsQc4FPA64CjgLMj\n4qjBRiVJkiRJM1utCj/geOD+zNyYmU8A1wIrBhyTJEmSJM1odRvquRB4oGd/M/Cy3TtNZEyrJEmS\nJM1WdSv89mn58uVDg45BkiRJkmaSug313AIs7tlfVNokSZIkSRNUtyt+dwFLI+IIugXfWcBfDzYk\nSZIkSZrZanXFLzN3Au8DvgW0gXWZ+ePBRiVJkiRJM9tQp9MZdAx9cX0/1UlEfA44HdiWmUeXtkOA\nrwBLgE3AmZm5fVAxanaKiMXANcB8oANcmZlrzE8NWkQcCNwOHEB3xNF1mXlJGeVzLXAo0ALOKTN7\nS9OqLCv2A2BLZp5ubqouImIT8BiwC9iZmcdN5Hu9Vlf8xuL6fqqhq4FTd2tbBWzIzKXAhrIvTbed\nwIWZeRRwAnB++bw0PzVoO4CTM/MlwDLg1Ig4Afg4cHlmHglsB84bYIya3f6O7oizUeam6uTVmbks\nM48r++P+Xp8RhR+u76eayczbgd/u1rwCWFu21wJnTGtQEpCZWzPz7rL9GN3/xCzE/NSAZWYnMx8v\nu3PLowOcDFxX2s1NDURELAJOAz5b9ocwN1Vv4/5enymF357W91s4oFiksczPzK1l+0G6Q+2kgYmI\nJcAxwJ2Yn6qBiJgTEfcA24BbgJ8DD5d7/MHvdw3OPwH/CPyx7B+Kuan66ADfjohWRLyntI37e32m\nFH7SjJKZHbq/pNJARMQzgeuBCzLz0d5j5qcGJTN3ZeYyuss1HQ+8cMAhSUTE6D37rUHHIo3hFZl5\nLN3b3s6PiL/sPdjv9/pMKfxc308zwUMRsQCgPG8bcDyapSJiLt2i74uZ+bXSbH6qNjLzYeA24OXA\nvIgYXV7K73cNwonAG8sEGtfSHeK5BnNTNZGZW8rzNuAGun84G/f3+kwp/J5c3y8inkZ3fb/1A45J\n2t16YGXZXgncOMBYNEuV+1KuAtqZeVnPIfNTAxURh0fEvLJ9EHAK3XtQbwPeXLqZm5p2mfnBzFyU\nmUvo/h/zO5n5NsxN1UBEPCMiDh7dBl4L3McEvtdn0nIOr6c7/noO8LnMXD3gkDSLRcSXgZOAw4CH\ngEuArwPrgOcBv6Q7re7uE8BIlYqIVwD/DdzLU/eqXEz3Pj/zUwMTES+mOwHBHLp/eF6XmR+NiOfT\nvcpyCPBD4O2ZuWNwkWo2i4iTgL8vyzmYmxq4koc3lN39gS9l5uqIOJRxfq/PmMJPkiRJkjQxM2Wo\npyRJkiRpgiz8JEmSJKnhLPwkSZIkqeEs/CRJkiSp4Sz8JEmSJKnhLPwkSZIkqeEs/CRJkiSp4f4f\nDoxqxapWhd8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x77c5f90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x77fb490>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# only for test_df, since there is a missing \"Fare\" values\n",
    "test_df[\"Fare\"].fillna(test_df[\"Fare\"].median(), inplace=True)\n",
    "\n",
    "# convert from float to int\n",
    "titanic_df['Fare'] = titanic_df['Fare'].astype(int)\n",
    "test_df['Fare']    = test_df['Fare'].astype(int)\n",
    "\n",
    "# get fare for survived & didn't survive passengers \n",
    "fare_not_survived = titanic_df[\"Fare\"][titanic_df[\"Survived\"] == 0]\n",
    "fare_survived     = titanic_df[\"Fare\"][titanic_df[\"Survived\"] == 1]\n",
    "\n",
    "# get average and std for fare of survived/not survived passengers\n",
    "avgerage_fare = DataFrame([fare_not_survived.mean(), fare_survived.mean()])\n",
    "std_fare      = DataFrame([fare_not_survived.std(), fare_survived.std()])\n",
    "\n",
    "# plot\n",
    "titanic_df['Fare'].plot(kind='hist', figsize=(15,3),bins=100, xlim=(0,50))\n",
    "\n",
    "avgerage_fare.index.names = std_fare.index.names = [\"Survived\"]\n",
    "avgerage_fare.plot(yerr=std_fare,kind='bar',legend=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Age\n",
    "- 年龄\n",
    "- 使用不缺失的年龄数据的均值方差生成的随机数进行填充"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/lib/python2.7/site-packages/ipykernel_launcher.py:28: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "/usr/lib/python2.7/site-packages/ipykernel_launcher.py:29: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7e43110>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2MAAAEFCAYAAABuAz9nAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu8XGV56PFfICCC2BTEGAkaKPRhU0+BhlKsVhGKFeEI\np6UULxgttqfW+6WKfFpFjp4DrQq0XqoFJbZcRRAqYsUIXnos1e1dp8+pxiCkgXgJAmLE4D5/vGuT\nyc7e2bP3XNaaPb/v55NPZl1mzbNmr5lnnvW+612LJiYmkCRJkiQN1k51ByBJkiRJo8hiTJIkSZJq\nYDEmSZIkSTWwGJMkSZKkGliMSZIkSVINLMYkSZIkqQYWY5q3iDgrIi7q9bodbGsiIg7sxbbqMmz7\nEBE3RsSqPm27Z8eGJKmZImJFlfsW1x1LpyLimxFxdJ+2/fcR8Vf92LaGyyLvMyaAiHgB8BrgV4B7\ngGuBN2Tm3XXGNZ2ImAAOysxv72CdS4DnAftl5oZBxdapTvZhgLH8DnBjNbkI2B34Sdsqh2Tm99rW\nfwHwosx88sCClKQhEBHrKN+h+2fmT6p5LwKel5lHD+D1bwEOBR6TmT/r9+vNRUSsAL4L7JKZW2oO\nh4h4LvDeanJn4GHA/ZPLM/MRU9Y/GzgwM583qBg1GmwZExHxGuA84C+AXwKOAh4P3BQRu87wnMae\n2YqIPYA/AH5MKci0A5n52cx8RJV4fq2avWRyXnshJkma1c7AKwb9olWx8zvABPCsQb/+sMnMS9ty\n3/HAf7XlvUfM9nypVxr7g1qDERGPBN4M/HFmfryavS4iTqWcwXoe8P7qjNATgM2UL/lXR8Ry2s4S\nRcTzgf8FPAK4ADiD0oLyyfYzSm1nx15Qrb87cH5mvrXazpHAhcAY8FPgw8CrM/OBDnfrD4C7gbcB\nfwL8Tdv+Phz4+2of7gQ+ALw8M5dXyx8L/B3wFOC+Kq6/neZ9+y3gOmDfzHywmvc/gDdn5q/PZR+q\nM5n/lJkXVdMvoK3lKSIOrmJaCXwf+KvMvKpa9sxqP/ejtGien5lv6/B96thkjMC/Ut6/XSLiPmBL\nZi6JiBOAt1BaVn8MXJyZZ1fPXcGO/95ns+1x9GTgr4FDgHur/b2k1/skSX3yN8DrIuLd0/Uumek7\nPSL2B74M7JWZv4iIfwBOysxHV8/7R2A8My+Y4XWfD/wbcCuwCvhQ22vuDVwCPBVI4F+AozvJM1Ni\n/yPgLzLziLZ5rwKelpnP2lEumGZb66h+I1TTZ7NtLjgKeAclF9wGvCIzb6mWvQB4I7AP8APgLzPz\n0hnel3mbjJHye/ksYFFEnAx8JzMPjYgXAq8DllPet/My873Vc4+m5M3zgdcDDwJnZeYHquWXAHdk\n5l9W0ydRfo8dUG3rJW2/y7SA2TKm3wZ2A65pn5mZ9wEfA45rm30ScDWwBNjmSy8iDgHeDTwXWEZp\nYdt3ltd+MhDAscAbI2Ksmv8g8CrgUcATq+V/Pod9WgVcDlwBHBwRK9uWvQlYQfmyO462lrOI2An4\nZ+CrVezHAq+MiN+b+gKZeSulK98xbbOfA1zWo32YjGkP4KZqu48GTgPeXb3fABcD/zMz96QUy5+a\n62vMRWa2gD8DPl+dPVxSLfoJ5YfAEuAE4MVVwmo309/7IRHxeEqXyb+jJNnDgK/0Y18kqU++CNwC\nvHbqgh19p2fmdykn1Q6vVn8KcF/bd+VTgU/v4HWfT8nNlwK/FxFL25a9i/I9/RhKjnzoGuAO8ky7\nfy5PiYPa5rXnvk5ywawiYl/gBkphtxflvfxwROxTxfu3wPFV7vtt+pwnqqLofwNXVrnv0GrRRuBE\n4JHAC4HzI+I32p76GLb+HjoDeFdE/PLU7VcncD9I6aG0hPK3X9efvVHT2DKmRwE/mKH/9gbKWbJJ\nn8/Mj1SPfxoR7eueAvxzZn4OICLeCLx8ltd+c2b+FPhqRHyV0s+9lZnjbeusi4j3UpLQTGcDHxIR\njwOeBrwmM++KiDWUxDC5zVOBF2fmJmBTRPwtcHa17DeBfTLznGp6bXVm8jTKWcSpLgeeTenOuSfw\nTKrk280+THEisG7yTBrw5Yj4MPCHlDNoPwcOiYivTu7THLffE5NnKytfi4jLKfv7kbb50/69p2zq\nOcAnM/PyavqH1T9JGiZvBP41Ii6cMn+27/RPA0+NiPXV8qur6c2UH/xfne7Fqh4FjweuyswfRMR3\nKN+n50fEzpQeI0/IzPuBb0XEauDoDmN6SGbeHxHXUXLfOVVRdjBwfbX8lrbVZ8oFnXge8LHM/Fg1\nfVNEfJGSZ68GfgE8ISK+V10XXsu14Zl5Q9vkpyPiE5Suol+q5v0cOKf6jfWxqkdJUFow250BvD8z\nb6qm16ORYTGmHwCPiojF0xRky6rlk27fwXYe2768+sKe7Uf0nW2P76d0byQifpXSNeEISpe2xWwt\npmZzOqWgmzxLdinw9oh4bWb+fGqcUx4/HnhsRLR3K9kZ+OwMr3UZ8H8j4sXA7wNfyszberAP7R4P\n/NaUmBYD/1g9/gPgL4FzI+JrwJmZ+fmpG4mIb1bbgnI2caZ9mpeq2+a5lNa5XSkXQn9oymrT/r2n\n2A/4Ti9jk6RBy8xvRMRHgTPZ9qTTbN/pn6Z0o78D+Aylhe10yiUCn83MX8zwkquAT2TmZM6+rJp3\nPqWXwWJ2nPt2FNNUlwFvB86hFHwfqYq8TnNBJx4P/GFE/Pe2ebsAN2fmT6rukq8FLo6If6WcgP2P\nqRupip9J2wxG1QsRcTylx82vUnqb7Q58vW2VH075bbWj3PexaeZrBFiM6fPAzyjFxEP9wyNi8oLW\ns9rW3dHQmxsoZ3smn/9wYO95xvQeSr/5Z2fmvRHxSkrLWyeeDzwuIiZ/+C+u4ngm5RqvDZS+3d+q\nlu/X9tzbge9mZnv3ixll5rci4jbK+9TeTWOu+/ATyhf4pMdMienTmXkc08jMLwAnRcQuwEspf8P9\nplnv16bO68J0x8FlwDsphd7miLiA0uo6V7cDR3YTnCQ1xJsoLSRvb5u3w+90SjH2N5Ri7NPA5yjX\n6W5mhi6KVb49Fdi5Lfc9DFgSEYcC3wC2UHLf/6uWT819O4ppqpuAfSLiMEoL2avals0lF8yW+/4x\nM/9kuidm5r8A/1Lt+1uAf6C0SE1dr5cDcWyT+yLiYZTrwZ8PXJeZP4+Ij1BGJZ6r2ynX2WkEWYyN\nuMz8cUS8Gfi7iLgHWEPp2/xuSjKY6czYVFcD/xYRv03pL3828/tCAtiT0m/+vuqi4hdTLmbdoYh4\nIuXL7PAp67+d6suSUqy8ISK+QEkCL21b79+BeyPi9ZT+6A9QBuB4eFX0TOcyyqhZR1Gul5vPPnwF\n+P0o99p6LKW7wl3Vso9SWr1Op1wDB+U6qvsoLUh/CHy0+jveQ+m60W93AcsjYte2AUn2BH5UJd8j\nKcXpJ+ax7UuBs6IMIHMNpa/9fm0tnZI0FDLz2xFxJaXL/mRryYzf6ZnZysz/jIifUrrp/Z/MvCci\n7qL0gnj3DC91MuU65f9GyVuTrgKen5mviYhrgLOjDLP/OEpOnGwl2mFM0+zXzyPiQ5SicS9KcTZp\nLrngK8BpEXEjpdv6KcDkgBX/BHyhumb7k5RWsaOAb1O6/h1Vzf8pJR8OKvcdFxE7VS2Uky1/3we2\nVK1kT6cUv3N1MfCJqjX1ZkrPpD2na+3TwuMAHiIz/5rSAvY2SgFxK+UszbHZ4X1KMvObwMsoX+Qb\nKF+OGymtbnP1WsoX+L2Us11Xdvi8VZSzU1/PzDsn/1FGNTwxIvaidKu4gzK63ycpReTPqn14kNJ3\n/rBq+Q+AiygFwUwm+8N/qq17yFz34XxKAr0LWE3b4CiZeS/ly/004L8oXf3OoyQAKN1X1lWF2J+x\nbUHYL58CvgncGRGT+/znlOsH7qVcK7HdKFydqLqQPJNyz7sfUZL1oTt8kiQ11znAHpMTHXynQ2kB\n+2Fm3t42vYit1yFNtQr4QGZ+b0rueyfw3Ci3onkpJZfdSTnJejlbc18nMU11GfC7wIemdMObSy74\nK8oJ1E2Ua9Me6l1S7ftJlN8m36f8JvkLyu/WnYBXV7H+iJKDX7yD1+mVye6WP4yIL1Xv28sp+7iJ\nkvOvn8+GM/PfqQYAoYxC+Wm2XlqgBc6bPqsvqm6Od1NubPzduuOZSXW912mZ+dS6Y5EkaRAi4jzK\njaFXzbqypL6ym6J6prrQdg3lDN7bKN0y1tUZ01QRsYwyrP3ngYMoLTDvrDUoSZL6qOouvyslL/8m\n1X1Aaw1KEmAxpt46idL9YRHlurHTMrNpTa+7Au8F9qe03F3BzP3wJUlaCPakdE18LKVL/Nsp11FL\nqpndFCVJkiSpBg7gIUmSJEk1sBiTJEmSpBr09Zqx8fFx+0BK0ghZuXLlfO8vOHLMkZI0OmbKj30f\nwGPlypVdb6PVajE2NtaDaPrPWPtjmGKF4YrXWPtjFGMdHx/vQTSjpdscOYrH2aAMU7zG2h/DFCsM\nV7yjFuuO8qPdFCVJkiSpBhZjkiRJklQDizFJkiRJqoHFmCRJkiTVwGJMkiRJkmpgMSZJkiRJNbAY\nkyRJkqQaWIxJkiRJUg36ftNnLWwrzrxhu3nrzj2hhkgkSWoWc6Sk2dgyJkmSJEk1sBiTJEmSpBpY\njEmSJElSDSzGJEmSJKkGFmOSJEmSVAOLMUmSJEmqgcWYJEmSJNXAYkySJEmSamAxJkmSJEk1sBiT\nJEmSpBpYjEmSJElSDRZ3slJErAPuBR4EtmTmERGxF3AlsAJYB5yamZv6EqUkSQ0UEUuAi4AnABPA\nHwOJ+VGS1IG5tIw9LTMPy8wjqukzgTWZeRCwppqWJGmUXAh8PDMPBg4FWpgfJUkd6qab4knA6urx\nauDk7sORJGk4RMQvAU8BLgbIzAcy827Mj5KkDnXUTZHS9eITETEBvDcz3wcszcwN1fI7gaX9CFCS\npIbaH/g+8IGIOBQYB16B+VGS1KFFExMTs64UEftm5vqIeDRwE/Ay4PrMXNK2zqbM/OX2542Pj0/s\nvvvuXQe5efNmdtttt663MwijFuvxq9duN+/GVQd0tc3pDNP7CsMVr7H2xyjGev/997Ny5cpFPQhp\nKETEEcC/AU/KzFsj4kLgHuBls+VH6E2OHMXjbFDMkf1hrP0zTPGOWqw7yo8dtYxl5vrq/40RcS1w\nJHBXRCzLzA0RsQzYON1zx8bG5hn2Vq1WqyfbGYTRi3X7RNOP/R+m9xWGK15j7Y9RjHV8fLwH0QyV\nO4A7MvPWavpqyvVhHeVH6P77chSPs0ExR/aHsfbPMMU7arHuKD/Oes1YROwREXtOPgaeDnwDuB5Y\nVa22CriuqyglSRoimXkncHtERDXrWOBbmB8lSR3qpGVsKXBtlWsWA5dl5scj4gvAVRFxBnAbcGr/\nwpQkqZFeBlwaEbtSmkFeSDnRaX6UJM1q1mIsM9dShuudOv+HlLOAkiSNpMz8CnDENIvMj5KkWXUz\ntL0kSZIkaZ4sxiRJkiSpBhZjkiRJklQDizFJkiRJqoHFmCRJkiTVwGJMkiRJkmpgMSZJkiRJNbAY\nkyRJkqQaWIxJkiRJUg0sxiRJkiSpBhZjkiRJklQDizFJkiRJqoHFmCRJkiTVwGJMkiRJkmpgMSZJ\nkiRJNbAYkyRJkqQaWIxJkiRJUg0sxiRJkiSpBhZjkiRJklQDizFJkiRJqoHFmCRJkiTVwGJMkiRJ\nkmpgMSZJkiRJNVhcdwCSJA2ziFgH3As8CGzJzCMiYi/gSmAFsA44NTM31RSiJKmhbBmTJKl7T8vM\nwzLziGr6TGBNZh4ErKmmJUnahsWYJEm9dxKwunq8Gji5xlgkSQ1lMSZJUncmgE9ExHhE/Gk1b2lm\nbqge3wksrSc0SVKTec2YJEndeXJmro+IRwM3RcR/tC/MzImImJjuia1Wq6sX3rx5c9fbGJRhihX6\nF28/tjlM762x9s8wxWusW1mMSZLUhcxcX/2/MSKuBY4E7oqIZZm5ISKWARune+7Y2FhXr91qtbre\nxqAMU6zQq3jXbjenH+/BML23xto/wxTvqMU6Pj4+47KOi7GI2Bn4IrA+M0+MiP2BK4C9gXHg9Mx8\noKtIJUkaIhGxB7BTZt5bPX46cA5wPbAKOLf6/7r6opQkNdVcrhl7BdDeRncecH5mHghsAs7oZWCS\nJA2BpcDnIuKrwL8DN2TmxylF2HER8Z/A71bTkiRto6OWsYhYDpwAvBV4dUQsAo4BnlOtsho4G3hP\nH2KUJKmRMnMtcOg0838IHDv4iCRJw6TTlrELgNcBv6im9wbuzswt1fQdwL49jk2SJEmSFqxZW8Yi\n4kRgY2aOR8TRc32BXow+4ogr/eFIUf0zTPEaa38Yq6QmWXHmDdtMrzv3hJoikdSuk26KTwKeFRHP\nBHYDHglcCCyJiMVV69hyYP10T+7FSCmjNuLKoDhSVP8MU7zG2h+jGOuORouSJEnbm7WbYma+ITOX\nZ+YK4DTgU5n5XOBm4JRqNUeKkiRJkqQ5mMtoilO9njKYx7cp15Bd3JuQJEmSJGnhm9NNnzPzFuCW\n6vFayo0tJUmSJElz1E3LmCRJkiRpnizGJEmSJKkGFmOSJEmSVAOLMUmSJEmqgcWYJEmSJNXAYkyS\nJEmSamAxJkmSJEk1sBiTJEmSpBpYjEmSJElSDSzGJEmSJKkGFmOSJEmSVAOLMUmSJEmqgcWYJEmS\nJNXAYkySJEmSarC47gCkXllx5g3bzVt37gk1RCJJqou5QNIwsWVMkiRJkmpgMSZJkiRJNbCboiRJ\nXYiInYEvAusz88SI2B+4AtgbGAdOz8wH6oxRktRMtoxJktSdVwCttunzgPMz80BgE3BGLVFJkhrP\nYkySpHmKiOXACcBF1fQi4Bjg6mqV1cDJ9UQnSWo6izFJkubvAuB1wC+q6b2BuzNzSzV9B7BvHYFJ\nkprPa8YkSZqHiDgR2JiZ4xFx9Hy20Wq1Zl9pBzZv3tz1Ngalzljn87r9ircf25xPrHX9LTxm+2eY\n4jXWrSzGJEmanycBz4qIZwK7AY8ELgSWRMTiqnVsObB+pg2MjY11FUCr1ep6G4MyuFjXbjdnPq/b\nm3h7E8tsOot121jqOm48ZvtnmOIdtVjHx8dnXGY3RUmS5iEz35CZyzNzBXAa8KnMfC5wM3BKtdoq\n4LqaQpQkNZzFmCRJvfV64NUR8W3KNWQX1xyPJKmh7KYoSVKXMvMW4Jbq8VrgyDrjkSQNB1vGJEmS\nJKkGFmOSJEmSVAOLMUmSJEmqgcWYJEmSJNVg1gE8ImI34DPAw6r1r87MN0XE/sAVlJGixoHTM/OB\nfgYrSZIkSQtFJy1jPwOOycxDgcOAZ0TEUcB5wPmZeSCwCTijf2FKkiRJ0sIyazGWmROZeV81uUv1\nbwI4Bri6mr8aOLkvEUqSJEnSAtTRfcYiYmdKV8QDgXcB3wHuzswt1Sp3APtO99xWq9V1kJs3b+7J\ndgZhULEev3rtdvNuXHXAnLbRr1j7sc35xlrXceMx2x/G2h/DFKskSQtJR8VYZj4IHBYRS4BrgYM7\nfYGxsbF5hrZVq9XqyXYGYXCxbl+MzfV1exNr93F0orNYBxNLJzxm+8NY+6NXsY6Pj/cgGkmSRsec\nRlPMzLuBm4EnAksiYrKYWw6s73FskiRJkrRgzVqMRcQ+VYsYEfFw4DigRSnKTqlWWwVc168gJUmS\nJGmh6aSb4jJgdXXd2E7AVZn50Yj4FnBFRLwF+DJwcR/jlCRJGhkrzrxhu3nrzj2hhkgk9dOsxVhm\nfg04fJr5a4Ej+xGUJEmSJC10c7pmTJIkSZLUGxZjkiRJklQDizFJkiRJqoHFmCRJkiTVoKObPkuS\nJA2rbkYmnO6506lrpMOt8a2tPRZJc2fLmCRJkiTVwJYxTWsQ9zfp9DU86ydJkqSFyJYxSZIkSaqB\nxZgkSZIk1cBiTJIkSZJq4DVjC8ggrvOSJG0VEbsBnwEeRsmpV2fmmyJif+AKYG9gHDg9Mx+oL1JJ\nUhNZjEmSNH8/A47JzPsiYhfgcxFxI/Bq4PzMvCIi/h44A3hPnYFK8+GJXqm/7KYoSdI8ZeZEZt5X\nTe5S/ZsAjgGuruavBk6uITxJUsPZMrbAeUZLkvorInamdEU8EHgX8B3g7szcUq1yB7BvTeFJkhrM\nYkySpC5k5oPAYRGxBLgWOLjT57Zara5ee/PmzV1vY1CaFutsscw13k7X7eY96OVrDCKO6TTtONiR\nYYoVhiteY93KYkySpB7IzLsj4mbgicCSiFhctY4tB9ZP95yxsbGuXrPVanW9jUEZXKxrO1prtli2\nxtvN9rZ/bufvQafPnd96vY+jMx6z/TNM8Y5arOPj4zMu85oxSZLmKSL2qVrEiIiHA8cBLeBm4JRq\ntVXAdfVEKElqMlvGBEx/bZkkaVbLgNXVdWM7AVdl5kcj4lvAFRHxFuDLwMV1Bqnm6OZa7k5ztTld\nGh4WY5IkzVNmfg04fJr5a4EjBx+RJGmY2E1RkiRJkmpgy5gkSZIG4vjVa5k6KIi33NEosxiT8H5s\nkiRJGjy7KUqSJElSDWwZkyRJI8ceEZKawJYxSZIkSaqBxZgkSZIk1cBiTJIkSZJqYDEmSZIkSTWw\nGJMkSZKkGsw6mmJE7Ad8EFgKTADvy8wLI2Iv4EpgBbAOODUzN/UvVGl4TL2ppSN0SZIkaapOWsa2\nAK/JzEOAo4CXRMQhwJnAmsw8CFhTTUuSJEmSOjBrMZaZGzLzS9Xje4EWsC9wErC6Wm01cHK/gpQk\nSZKkhWZO14xFxArgcOBWYGlmbqgW3UnpxihJkiRJ6sCs14xNiohHAB8GXpmZ90TEQ8sycyIiJqZ7\nXqvV6jrIzZs392Q7gzAMsU7GN9dYO123m/1fceYNjYmll3/HJh8Tw3DMTjLW/himWCX1xnT51uub\npcHrqBiLiF0ohdilmXlNNfuuiFiWmRsiYhmwcbrnjo2NdR1kq9XqyXYGYXCxrp19lRlMxrdtrLNv\nb/r92v55ne9/9/vQz1i6+ztuu70mH79+vvpjFGMdHx/vQTSSJI2OWbspRsQi4GKglZnvaFt0PbCq\nerwKuK734UmSJEnSwtRJy9iTgNOBr0fEV6p5ZwHnAldFxBnAbcCp/QlRkiRp4eq0i36/NSUOaZTM\nWoxl5ueARTMsPra34UiSJEnSaJjTaIqSJEmSpN7oeDRFSZKkhWz7bnrzH2hKkjphMaaea3qf86bH\nJ0mSpNFgN0VJkiRJqoEtY5IkzUNE7Ad8EFgKTADvy8wLI2Iv4EpgBbAOODUzN9UVpySpuWwZkyRp\nfrYAr8nMQ4CjgJdExCHAmcCazDwIWFNNS5K0HVvGNJS87ktS3TJzA7ChenxvRLSAfYGTgKOr1VYD\ntwCvryFESVLD2TImSVKXImIFcDhwK7C0KtQA7qR0Y5QkaTu2jEmS1IWIeATwYeCVmXlPRDy0LDMn\nImJipue2Wq2uXnvz5s1db2NQhinW+VjI+zZVr/e1qe/dsB2zwxSvsW5lMSZJ0jxFxC6UQuzSzLym\nmn1XRCzLzA0RsQzYONPzx8bGunr9VqvV9TYGZXCx1nNvsOn3bWHep6y7v+P270lTj+Fh+nzBcMU7\narGOj4/PuMxibARte71V54liGK/TGsaYJQ2HiFgEXAy0MvMdbYuuB1YB51b/X1dDeJKkIWAxJknS\n/DwJOB34ekR8pZp3FqUIuyoizgBuA06tKT4NkCf/JM2HxZgkSfOQmZ8DFs2w+NhBxiJJGk6OpihJ\nkiRJNbBlTFrApus2s+7cE2qIRJI0auy6Kc3OljFJkiRJqoHFmCRJkiTVwG6KkiRJqo1d6jXKhqIY\nO371WqbeD8sPqZqi333iTVKSJEkLk90UJUmSJKkGQ9EyJkmSpOZy5ERpfizGpAGwq6EkSZKmspui\nJEmSJNXAYkySJEmSamA3RUmSJI0cLyFQE1iMzYEfWkmSJEm9YjdFSZIkSaqBLWOSJA2p41evBdZu\nM88eGxol9lrSsLNlTJIkSZJqMGvLWES8HzgR2JiZT6jm7QVcCawA1gGnZuam/oUpNYM3tZQkSVKv\ndNIydgnwjCnzzgTWZOZBwJpqWpIkSZLUoVmLscz8DPCjKbNPAlZXj1cDJ/c4LkmSJEla0OZ7zdjS\nzNxQPb4TWNqjeCRJkiRpJHQ9mmJmTkTExEzLW61Wty8xremu3blx1QHbTJdRpna8Trem7t/mzZv7\nts8arH7/HbvZfjfPnf6zM+/NDdQwfb6MVaOmjlHtvI63Hr7vUu/Mtxi7KyKWZeaGiFgGbJxpxbGx\nsXm+RLvti6rOXmv753UXz+zba7VaPdrnucei3pr+79i7973z46Sb43i+n51mGtznq3ujGOv4+HgP\nopEkaXTMt5vi9cDkufRVwHW9CUeSJEmSRkMnQ9tfDhwNPCoi7gDeBJwLXBURZwC3Aaf2M0hJkprI\n279IkroxazGWmc+eYdGxPY5FGnnd9MO3D79Ui0uAdwIfbJs3efuXcyPizGr69TXEJklquPl2U5Qk\naeR5+xdJUje6Hk1RkiRto+Pbv/RjFMtORhuGwY847KidmovmjDi8tuefi34Zps+YsW5lMSZJUp/M\ndvuX7kex7GbE1MGOONyfEUYdWXihcsThuRvFUXwHoRex7mi0YYsxSV2p495CUsN1fPsXSdJo85ox\nSZJ6y9u/SJI6YsuYJEnz5O1fpMFxxGEtRBZjDWOXL9XB406aH2//Iknqht0UJUmSJKkGtoxJkiSp\nURZCt0J7nagTtoxJkiRJUg0WVMvYQjiLouYY9eOp12f0PEMoSZK0rQVVjEmSpIVp1E+QqT6eTFQ/\n2U1RkiRJkmpgMSZJkiRJNbCb4hCwa8bC5N+1nq4fdjfRKPL7RuqtqZ8pr6nWfNkyJkmSJEk1sBiT\nJEmSpBrYTVGSJElqkLq6LtplcvBGrhgbxEHmgSz11rafqbXTfp783EmSpGFjN0VJkiRJqoHFmCRJ\nkiTVYOS6KUqSpOnZlV8aLtt/nuzKP2wsxvD+Kxo+TT9m+x3f8Oz/2ofmmfQkSdJUdlOUJEmSpBrY\nMiZJkmZMU/g8AAAGeklEQVTU9JZoaaomH7ODiK3J+w/2HpnKljFJkiRJqoEtY13q5uxD089cSHXo\n5eeiSZ8xL56WJElTWYxJkqS+mG6kt/k/Vxptvf5MNOkzNjWWUTpZaTdFSZIkSaqBLWMD0qSzD9J8\nLdTjuEldCOu4z9ONqw7o6fYlSVJnuirGIuIZwIXAzsBFmXluT6KSJGnImSM7t1BP9Gh0LORjuCkn\nLOu6KX2/T1jOu5tiROwMvAs4HjgEeHZEHNKrwCRJGlbmSElSJ7q5ZuxI4NuZuTYzHwCuAE7qTViS\nJA01c6QkaVaLJiYm5vXEiDgFeEZmvqiaPh34rcx86eQ64+Pj89u4JGkorVy5clHdMTSBOVKS1G6m\n/NjXATxMypIkTc8cKUnqppviemC/tunl1TxJkkadOVKSNKtuWsa+ABwUEftTEsxpwHN6EpUkScPN\nHClJmtW8rxkDiIhnAhdQhu19f2a+tVeBVdtv9LDAEfF+4ERgY2Y+oZq3F3AlsAJYB5yamZvqinFS\nROwHfBBYCkwA78vMC5sYb0TsBnwGeBjlhMHVmfmm6kfNFcDewDhwenVhfO2qkdO+CKzPzBObGmtE\nrAPuBR4EtmTmEU08BgAiYglwEfAEyjH7x0DSzFiDEtekA4A3Uj5zTYz3VcCLKO/r14EXAsto4DE7\nzEY5R5of+8P82F/myN4zP86um26KZObHMvNXM/NX+pBkhmFY4EuAZ0yZdyawJjMPAtZU002wBXhN\nZh4CHAW8pHo/mxjvz4BjMvNQ4DDgGRFxFHAecH5mHghsAs6oMcapXgG02qabHOvTMvOwzDyimm7i\nMQDlR+bHM/Ng4FDK+9vIWLM4LDMPA1YC9wPX0sB4I2Jf4OXAEdWP5J0prTZNPmaH0ojnyEswP/aD\n+bH/zJE9ZH6cXVfFWJ81fljgzPwM8KMps08CVlePVwMnDzSoGWTmhsz8UvX4XsqHdl8aGG9mTmTm\nfdXkLtW/CeAY4OpqfiNiBYiI5cAJlDNURMQiGhrrDBp3DETELwFPAS4GyMwHMvNuGhjrNI4FvpOZ\nt9HceBcDD4+IxcDuwAaG65hVw3Ok+bE/zI+1aNxxMMQ50vw4jSYXY/sCt7dN31HNa7qlmbmhenwn\npdtDo0TECuBw4FYaGm9E7BwRXwE2AjcB3wHuzswt1SpNOh4uAF4H/KKa3pvmxjoBfCIixiPiT6t5\nTTwG9ge+D3wgIr4cERdFxB40M9apTgMurx43Lt7MXA+8DfgeJcn8mNLtoqnHrKY3jDmycZ+HqcyP\nPTdM+RHMkf1mfpxGk4uxoZeZE5QPdmNExCOADwOvzMx72pc1Kd7MfLBq0l5OOQN8cM0hTSsiJq+J\nGK87lg49OTN/g9K16SUR8ZT2hQ06BhYDvwG8JzMPB37ClC4MDYr1IRGxK/As4ENTlzUl3oj4ZcoZ\nyf2BxwJ7sH13MqmvmvJ5aGd+7K0hzI9gjuwb8+PMmlyMDeuwwHdFxDKA6v+NNcfzkIjYhZJoLs3M\na6rZjY0XoGp2vxl4IrCkajaG5hwPTwKeVV30ewWlKftCmhnr5FkfMnMjpc/2kTTzGLgDuCMzb62m\nr6YknibG2u544EuZeVc13cR4fxf4bmZ+PzN/DlxDOY4becxqRsOYI5v4eQDMj30yVPkRzJF9Zn6c\nQZOLsYeGBa6q6dOA62uOqRPXA6uqx6uA62qM5SFVP+2LgVZmvqNtUePijYh9qlGCiIiHA8dR+vDf\nDJxSrdaIWDPzDZm5PDNXUI7RT2Xmc2lgrBGxR0TsOfkYeDrwDRp4DGTmncDt1ShMUPqZf4sGxjrF\ns9naBQOaGe/3gKMiYvfqe2HyvW3cMasdGsYc2cTPg/mxT4YpP4I5cgDMjzPoamj7fuv3sMDdiojL\ngaOBRwF3AW8CPgJcBTwOuI0yVOfUi5gHLiKeDHyWMkznZN/tsyj94hsVb0T8OuUCyZ0pJwyuysxz\nIuIAytm1vYAvA8/LzJ/VF+m2IuJo4LVZhu5tXKxVTNdWk4uByzLzrRGxNw07BgAi4jDKRd+7Amsp\nw8vuRANjhYeS9/eAAzLzx9W8pr63bwb+iDKK3Jcpw/juS8OOWe1Yk3Ok+bE/zI/9Y47sH/PjjjW6\nGJMkSZKkharJ3RQlSZIkacGyGJMkSZKkGliMSZIkSVINLMYkSZIkqQYWY5IkSZJUA4sxSZIkSaqB\nxZgkSZIk1cBiTJIkSZJq8P8BGIhmxTBbsFgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x799a210>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, (axis1,axis2) = plt.subplots(1,2,figsize=(15,4))\n",
    "axis1.set_title('Original Age values - Titanic')\n",
    "axis2.set_title('New Age values - Titanic')\n",
    "\n",
    "# axis3.set_title('Original Age values - Test')\n",
    "# axis4.set_title('New Age values - Test')\n",
    "\n",
    "# get average, std, and number of NaN values in titanic_df\n",
    "average_age_titanic   = titanic_df[\"Age\"].mean()\n",
    "std_age_titanic       = titanic_df[\"Age\"].std()\n",
    "count_nan_age_titanic = titanic_df[\"Age\"].isnull().sum()\n",
    "\n",
    "# get average, std, and number of NaN values in test_df\n",
    "average_age_test   = test_df[\"Age\"].mean()\n",
    "std_age_test       = test_df[\"Age\"].std()\n",
    "count_nan_age_test = test_df[\"Age\"].isnull().sum()\n",
    "\n",
    "# generate random numbers between (mean - std) & (mean + std)\n",
    "rand_1 = np.random.randint(average_age_titanic - std_age_titanic, average_age_titanic + std_age_titanic, size = count_nan_age_titanic)\n",
    "rand_2 = np.random.randint(average_age_test - std_age_test, average_age_test + std_age_test, size = count_nan_age_test)\n",
    "\n",
    "# plot original Age values\n",
    "# NOTE: drop all null values, and convert to int\n",
    "titanic_df['Age'].dropna().astype(int).hist(bins=70, ax=axis1)\n",
    "# test_df['Age'].dropna().astype(int).hist(bins=70, ax=axis1)\n",
    "\n",
    "# fill NaN values in Age column with random values generated\n",
    "titanic_df[\"Age\"][np.isnan(titanic_df[\"Age\"])] = rand_1\n",
    "test_df[\"Age\"][np.isnan(test_df[\"Age\"])] = rand_2\n",
    "\n",
    "# convert from float to int\n",
    "titanic_df['Age'] = titanic_df['Age'].astype(int)\n",
    "test_df['Age']    = test_df['Age'].astype(int)\n",
    "        \n",
    "# plot new Age Values\n",
    "titanic_df['Age'].hist(bins=70, ax=axis2)\n",
    "# test_df['Age'].hist(bins=70, ax=axis4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7a63410>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x77f2e10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABBwAAAEDCAYAAACWIxfsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu8ZFV14PEfNFGDLxBQCZDoKC6v8ZVgMGqiiBpBDSig\ngI8JiiYaSIwanDhxkNH4GQ1RBxOCGkSNL0QeitD4iIA4igKNPOxultMiQrc0DzUm6hiD9vxxqqG6\n+jx2VZ9zb9/bv+/n05+uqrvX3btOrTpnn3XPY7sNGzYgSZIkSZLUp+0XegCSJEmSJGnpseAgSZIk\nSZJ6Z8FBkiRJkiT1zoKDJEmSJEnqnQUHSZIkSZLUOwsOkiRJkiSpdzss9ABKrFixwnt3SpIkSZK0\nFdpnn322q3t9URQcAPbZZ5+FHoIkSZIkSRqzYsWKxp95SoUkSZIkSeqdBQdJkiRJktQ7Cw6SJEmS\nJKl3FhwkSZIkSVLvLDhIkiRJkqTeDXaXiog4DXgOcGtmPrLm59sBJwHPAn4KHJWZVw41HkmSJEmS\nNH+GPMLhg8ABLT8/ENh79O+PgVMGHIskSZIkSZpHgxUcMvMS4ActTQ4G/jkzN2Tm14CdImL3ocYj\nSZIkSZLmz2CnVBTYA7hp7Pna0Ws31zW+7ZSPFP/i2/fbZ4sGttjc58KTi9v+2/7HDDgS3fjV1xW3\n/fUnvuPOx2sufW1x3EOf8M6pxiRJkjSfrr9mt+K2/+XRtw04Ei0WO19wx1Ttf3jgQu7GLm27XLRy\nqvbff+pvtv58SX5Sc3NzCz2EebXuwvK229qymW83frW87fhnsebS2eIkSZK2Ntdfc3txW+c1Alh/\nwbVTtTdvhnPrlAWHubk5VqxY0fjzhbxLxTpgr7Hne45ekyRJkiRJi9xCHuFwLnBsRJwOPB74UWbW\nnk4hSZIkSZIWlyFvi/lxYD9g14hYC7wJ+BWAzHwPsJzqlphrqG6L+dKhxiJJkiRJkubXYAWHzDyy\n4+cbAK9gKEmSJEnSErSQ13CQJEmSJElLlAUHSZIkSZLUOwsOkiRJkiSpdxYcJEmSJElS7yw4SJIk\nSZKk3llwkCRJkiRJvbPgIEmSJEmSemfBQZIkSZIk9c6CgyRJkiRJ6p0FB0mSJEmS1DsLDpIkSZIk\nqXcWHCRJkiRJUu8sOEiSJEmSpN5ZcJAkSZIkSb2z4CBJkiRJknpnwUGSJEmSJPXOgoMkSZIkSeqd\nBQdJkiRJktQ7Cw6SJEmSJKl3FhwkSZIkSVLvLDhIkiRJkqTeWXCQJEmSJEm9s+AgSZIkSZJ6Z8FB\nkiRJkiT1zoKDJEmSJEnqnQUHSZIkSZLUOwsOkiRJkiSpdxYcJEmSJElS7yw4SJIkSZKk3u2w0ANY\nam455cSp2j/gVccNNBJJkiRJkhaORzhIkiRJkqTeWXCQJEmSJEm9G/SUiog4ADgJWAacmplvm/j5\nrwMfAnYatfmrzFw+5JgkSZIkSdLwBjvCISKWAScDBwKPAI6MiEdMNHsjcEZm/hZwBPCPQ41HkiRJ\nkiTNnyFPqdgXWJOZ12fmz4HTgYMn2mwA7jN6fF/gewOOR5IkSZIkzZMhT6nYA7hp7Pla4PETbU4A\nPh8RfwbcE3j6gOORJEmSJEnzZKFvi3kk8MHMfEdEPAH4cEQ8MjN/uSW/dPXq1f2Mbgb3m7J9H2O9\nT3eTXvtTP2b9LPwMJUnS1m234pbOawSw85TtzZvh7DJl+67PYsiCwzpgr7Hne45eG3c0cABAZl4a\nEfcAdgVu3ZKO5+bmtiR8i9xy8XlTte9jrOsunN/+1OzGr5a3Hf8s1lw6W5wkSdLW5vprbi9u67xG\nAOsvuHaq9ubNcG69aOVU7efm5lixYkXjz4e8hsPlwN4R8eCIuBvVRSHPnWhzI/A0gIiYA+4B3Dbg\nmCRJkiRJ0jwYrOCQmXcAxwKfA1ZT3Y1iZUS8OSIOGjV7HfCKiLga+DhwVGZuGGpMkiRJkiRpfgx6\nDYfMXA4sn3jt+LHHq4AnDTkGSZIkSZI0/4Y8pUKSJEmSJG2jLDhIkiRJkqTeWXCQJEmSJEm9s+Ag\nSZIkSZJ6Z8FBkiRJkiT1zoKDJEmSJEnqnQUHSZIkSZLUOwsOkiRJkiSpdxYcJEmSJElS7yw4SJIk\nSZKk3llwkCRJkiRJvbPgIEmSJEmSerfDQg9gaLe95/3FbXd75dEDjkSSJEmSpG2HRzhIkiRJkqTe\nWXCQJEmSJEm9W/KnVCwmN//j8cVtd//TNw84EkmSJEmStoxHOEiSJEmSpN5ZcJAkSZIkSb2z4CBJ\nkiRJknpnwUGSJEmSJPXOgoMkSZIkSeqdBQdJkiRJktQ7b4u5Dfvuu59b3PY3/vxTA45EkiRpcXnj\nOeuK2/7N8/a48/HfnbO+OO4vn/fAqcYkSVsbj3CQJEmSJEm9s+AgSZIkSZJ6Z8FBkiRJkiT1zoKD\nJEmSJEnqnQUHSZIkSZLUOwsOkiRJkiSpdxYcJEmSJElS7yw4SJIkSZKk3llwkCRJkiRJvdthyF8e\nEQcAJwHLgFMz8201bV4AnABsAK7OzBcOOSZJkiRJkjS81oJDRPw7VSGgVmbepyV2GXAy8AxgLXB5\nRJybmavG2uwNvAF4Umb+MCLuP+X4JUmSJEnSVqi14JCZ9waIiLcANwMfBrYDXgTs3vG79wXWZOb1\no99xOnAwsGqszSuAkzPzh6P+bp3hPUiSlqBnfeq/Fbdd/ty3DzgSSZIkzaL0lIqDMvMxY89PiYir\ngeNbYvYAbhp7vhZ4/ESbhwFExFeoTrs4ITM/WzgmSZIkSZK0lSotOPwkIl4EnE51isWRwE966n9v\nYD9gT+CSiHhUZv7rlvzS1atX3/l41xnjZnW/KduP97nTjHGN57V0xO04Y5z6Mesy9bOQNuf3QtL8\nK5+BbbqO2nnGuMVkt+KWi/c9zuDiKfcU9vvBMOPYCpV/KyrbVN7Ms12mbN/1WZQWHF5IdfHHk6gK\nDl8ZvdZmHbDX2PM9R6+NWwt8PTP/E/hORHyLqgBxeeG4as3Nzd35+LYvfXWmuFndcvF5U7Uf7/Pm\ni2aLW3fhbHHf/cJscWp2Y3m6bbJM11w6W5y0pGV5U78XkubddZPT2mbj66jzr1s/U9xicv01txe3\nXazvcRarL75lqvbb0rJZf8G1U7XflpbNfLv1opVTtZ+bm2PFihWNPy8qOGTmDVTXX5jG5cDeEfFg\nqkLDEWxepPgU1dESH4iIXalOsbh+yn4kSZIkSdJWZvuSRhHxsIj4YkR8c/T80RHxxraYzLwDOBb4\nHLAaOCMzV0bEmyPioFGzzwHfj4hVwEXAcZn5/VnfjCRJkiRJ2jqUnlLxT8BxwHsBMvOaiPgY8Ddt\nQZm5HFg+8drxY483AK8d/ZMkSZIkSUtE0REOwI6ZednEa3f0PRhJkiRJkrQ0lBYcbo+Ih1BdMJKI\nOAy4ebBRSZIkSZKkRa30lIpjgPcBD4+IdcB3gBcNNipJkiRJkrSolRYcvpuZT4+IewLbZ+a/Dzko\nSZIkSZK0uJWeUvGdiHgf8LvAjwccjyRJkiRJWgJKCw4PB/6F6tSK70TEP0TE7w03LEmSJEmStJgV\nnVKRmT8FzgDOiIidgZOALwHLBhybJEmSJElapEqv4UBEPAU4HDgAuAJ4wVCDkiRJkiRJi1tRwSEi\nbgC+QXWUw3GZ+ZMBxyRJkiRJkha50iMcHp2Z/zboSCRJkiRJ0pLRWnCIiNdn5t8Cb42IDZM/z8w/\nH2xkkiRJkiRp0eo6wmH16P8rhh6IJElaWp5z5oeL25532EsGHIkkSVoIrQWHzPzM6OG1mXnlPIxH\nkiRt455z5senan/eYUcONBJJkrQlSq/h8I6IeCBwJvCJzPzmgGOSJEmSJEmL3PYljTLzqcBTgduA\n90bEtRHxxkFHJkmSJEmSFq2iggNAZq7PzHcDrwSuAo4fbFSSJEmSJGlRKzqlIiLmgMOBQ4HvA58A\nXjfguLQEXX3KQcVtH/OqcwcciSRJ0uLy3rNvnar9nxxy/y3u8+wzby9ue8hhu25xf/Ptsg9Mt0z3\nfemWL9P59r2/vbm47a+9fvct7m/9O7K47QNfF1vcn7Z+pddwOA04HXhmZn5vwPFIkiRJkqQloLPg\nEBHLgO9k5knzMB5JkiRJkrQEdF7DITN/AewVEXebh/FIkiRJkqQloPSUiu8AX4mIc4GfbHwxM985\nyKgkSZIkSdKiVlpw+Pbo3/bAvYcbjiRJkiRJWgqKCg6Z+T+HHogkSZIkSVo6Sm+LeRGwYfL1zNy/\n9xFJkiRJkqRFr/SUir8ce3wP4FDgjv6HI0ka2gs/dUBx248997MDjkSSJElLWekpFSsmXvpKRFw2\nwHgkSZIkSdISUHpKxf3Gnm4PPA647yAjkiQtKQd++pjithccfPKAI9n6PPvsvy9ue/4hfzbgSCRJ\nkvpXekrFCu66hsMdwA3A0UMMSJIkSZIkLX6tBYeI+B3gpsx88Oj5H1Fdv+EGYNXgo5MkSZIkSYvS\n9h0/fy/wc4CIeDLwv4APAT8C3jfs0CRJkiRJ0mLVdUrFssz8wejx4cD7MvMs4KyIuGrYoUmSJEmS\npMWqs+AQETtk5h3A04A/niJW0sDO+kD57Q0Pfam3N5QkSZI0f7qKBh8HvhQRtwP/D/gyQEQ8lOq0\nCkmSJEmSpM20Fhwy860R8UVgd+DzmbnxThXbA53354qIA4CTgGXAqZn5toZ2hwJnAr+TmVdMMX5J\nkiRJkrQV6jwtIjO/VvPat7riImIZcDLwDGAtcHlEnJuZqyba3Rt4NfD10kFLkiSp3PPOuri47TmH\n7jfYOCRJ25auu1RsiX2BNZl5fWb+HDgdOLim3VuAtwM/G3AskiRJkiRpHg154cc9gJvGnq8FHj/e\nICJ+G9grM8+PiOP66nj16tV3Pt51xrhZ3W/K9uN97jRj3H1mjNtxxrj5MN/9LYRZ3+N8x2nbtli+\n+9tCfi/197gl72+pL5v55vIsVT4D23SZ7jxj3C7FcZvHzmq3GfubNW6+zfcynW5PoY9lc98p9jD6\n6G/nKf6ePd5f+bdi81j1a7pvRfdnsWB3moiI7YF3Akf1/bvn5ubufHzbl746U9ysbrn4vKnaj/d5\n80Wzxa27cLa4735htrhZXX3x/Pa3EG4sT7dN3uOaS2eLW7XZCU9lcdrGZXnTXvKm8yS8hv7me5wL\nYfW/FDddlO9xZfllmTZ5fyunu/P2olw2823VLcVNXZ6FrltX3HR8mZ5/3fqZ4i5ZfWtx3GTsrFav\nvH2m/q6/Zra4+XbZ1+Z3ma6+uPx72Ed/AN/7zM3z2t/65eUb7/H+1l9w7VT9uJ4azq0XrZyq/dzc\nHCtWrGj8+ZAFh3XAXmPP9xy9ttG9gUcCF0cEwAOBcyPiIC8cKWmjUz7yzOK2r3rx5wYciSRJkqRp\nDFlwuBzYOyIeTFVoOAJ44cYfZuaPGDvjISIuBv7SYoMkSZIkSYvfYBeNzMw7gGOBzwGrgTMyc2VE\nvDkiDhqqX0mSJEmStPAGvYZDZi4Hlk+8dnxD2/2GHIskSZIkSZo/C3bRSEmStDg856wPFrc979Cj\nBhuH5t8hZ01xNWTg7EOfONBItC34l4/dVtz26S8svxOGpIVjwUHS4N7/z38wVfuj/+vnt7jPkz5a\nfrHJV7/Ii01qcXn2We8pbnv+oa8ccCSSJEnNLDhIkrQFnn32O6dqf/4hrx1oJJIkSVsXCw6SJEna\najz/rGuL237y0EcNOBJJ0pYa7C4VkiRJkiRp22XBQZIkSZIk9c5TKiRJAp51ztumar/8eX810Egk\nSZKWBo9wkCRJkiRJvfMIB00tTz64uG0c8+kBR6JZnf7B8ltGAhxxlLeNHMobPnnAVO3/1/M/O9BI\npMXvOWeeMVX78w57wRb3edCZnylue+5hf7jF/S0Wh551xVTtzzr0cQONRNuCL3/4tuK2v/+S3QYc\niaRJHuEgSZIkSZJ6Z8FBkiRJkiT1zoKDJEmSJEnqnddwkCRJmmcHn3lBcdtPH3bggCORJGk4Fhwk\nSdI27w/PPLu47WcOO2TAkUiStHRYcJBU7J+nvLvFf/XuFpIkSdI2y4JDg9vec/JU7Xd75TEDjUSS\nJEmSpMXHi0ZKkiRJkqTeWXCQJEmSJEm985QKSdKS8qxzTihuu/x55W2XgmefdWpx2/MPffmAI5E0\nXz5y9m1TtX/xIbsNNBJJ2yKPcJAkSZIkSb2z4CBJkiRJknrnKRWSNObEj5ff+vO4I73tpyRJktTE\nIxwkSZIkSVLvPMJBkhahY88+YKr2/3DIZwcaiSRJklTPIxwkSZIkSVLvLDhIkiRJkqTeeUqFtnqX\nvfcPp2q/7598Zov7vPDUZxe33f/l529xf5IkSZK01HiEgyRJkiRJ6p0FB0mSJEmS1DsLDpIkSZIk\nqXdew0GSVOTATx9e3PaCgz8x4EgkSZK0GFhwkCRJWiSee+YXitt+6rBnDDgSSZK6DVpwiIgDgJOA\nZcCpmfm2iZ+/Fng5cAdwG/CyzPzukGOSJEmSJEnDG+waDhGxDDgZOBB4BHBkRDxiotk3gMdl5qOB\nM4G/HWo8kiRJkiRp/gx5hMO+wJrMvB4gIk4HDgZWbWyQmReNtf8a8OIBxyNJkiRJkubJkHep2AO4\naez52tFrTY4GLhhwPJIkSZIkaZ5sFReNjIgXA48DntLH71u9evWdj3edh7jx2PvNGAew04xx95kx\nbscZ46apUo3HTWPWuC2Nnc/+FkvcQvS51OO2xGJ5j0s9biH6NG7r6dO4rafPhVgP36V8BrbpOHee\nMW6X4rhNY6eb1W7a527zHFc+1n7iZl2ms5puT6GP/L7vFHsYffS38xR7CuP9lX8rNo9Vv6b7VnR/\nFkMWHNYBe40933P02iYi4unAXwNPycz/6KPjubm5Ox/f9qWvzhh34Ux93nLxeTPFAdx8UUvDlrh1\nUwx1PO675Re63iQuZ+zv6otni7vskvK4ydhZ3fyV2fq7sTzdNolbc+lscau+Nlvc1V8vjxuPvXzG\nuK9ePlscwMUrZov7/JWzxZ131WxxM/vmdM3v7HPK7ewmY80Z4741z3GzjvO6WeM+XR44Hrt6uoPz\nNulz9b/MFrfqSzPGla/cNo0r//JvErfyihnjpvgijseuvHa2OICV5V+qTePWzBh3w4xxa2eLW3XL\njHFTbNjGY1eVf/ab91n+OfayHp7VdZtNaxuNj/P869bPFHfJ6luL48ZjV6y+baY4gNUrb58p7vpr\nZotb943ysY7HffmK2eIu+9psy3RWqy8u/x720R/A9z5z87z2t355+cZ7vL/1F2zB+lu9uvWilVO1\nn5ubY8WK5gn7kAWHy4G9I+LBVIWGI4AXjjeIiN8C3gsckJnTfeMlSZIkSdJWa7BrOGTmHcCxwOeo\n/hZ3RmaujIg3R8RBo2YnAvcCPhkRV0XEuUONR5IkSZIkzZ9Br+GQmcuB5ROvHT/2+OlD9i9J8+Ut\nn3hmcdv/cfjnBhyJJEmStHUY8i4VkiRJkiRpG2XBQZIkSZIk9c6CgyRJkiRJ6p0FB0mSJEmS1DsL\nDpIkSZIkqXcWHCRJkiRJUu8sOEiSJEmSpN5ZcJAkSZIkSb2z4CBJkiRJknpnwUGSJEmSJPXOgoMk\nSZIkSeqdBQdJkiRJktQ7Cw6SJEmSJKl3Oyz0ACRJkqSF8oqzbyxu+0+H/PqAI5GkpccjHCRJkiRJ\nUu8sOEiSJEmSpN5ZcJAkSZIkSb2z4CBJkiRJknpnwUGSJEmSJPXOgoMkSZIkSeqdBQdJkiRJktQ7\nCw6SJEmSJKl3FhwkSZIkSVLvLDhIkiRJkqTeWXCQJEmSJEm9s+AgSZIkSZJ6Z8FBkiRJkiT1zoKD\nJEmSJEnqnQUHSZIkSZLUOwsOkiRJkiSpdxYcJEmSJElS7yw4SJIkSZKk3llwkCRJkiRJvdthyF8e\nEQcAJwHLgFMz820TP7878M/APsD3gcMz84YhxyRJkiRJkoY32BEOEbEMOBk4EHgEcGREPGKi2dHA\nDzPzocC7gLcPNR5JkiRJkjR/hjylYl9gTWZen5k/B04HDp5oczDwodHjM4GnRcR2A45JkiRJkiTN\ng+02bNgwyC+OiMOAAzLz5aPnLwEen5nHjrX55qjN2tHzb4/a3D7+u1asWDHMICVJkiRJ0hbZZ599\nag8cGPQaDn1pGrwkSZIkSdo6DXlKxTpgr7Hne45eq20TETsA96W6eKQkSZIkSVrEhjzC4XJg74h4\nMFVh4QjghRNtzgX+CLgUOAy4MDM9fUKSJEmSpEVusIJDZt4REccCn6O6LeZpmbkyIt4MXJGZ5wLv\nBz4cEWuAH1AVJYp03XKzJe404DnArZn5yCn624vqFp4PADYA78vMkwri7gFcAtydanmfmZlvmqLf\nZcAVwLrMfE5hzA3AvwO/AO7IzMcVxu0EnAo8kuo9viwzL+2ICeATYy/9F+D4zPzfBf29Bnj5qK9r\ngZdm5s8K4l4NvALYDvintr7qPu+IuN9ozA8CbgBekJk/LIh7PnACMAfsm5lXFPZ3IvCHwM+Bb4/e\n578WxL2F6sKqvwRuBY7KzO+V9Dn2s9cBfwfsNnltlIY+T6BatreNmv33zFxe0l9E/BlwDFXenZ+Z\nry/o7xNAjJrsBPxrZj62IO6xwHuAewB3AH+amZcVxD1mFHcvqs/+RZn5bxNxtd/1rrxpiWvNm5a4\n1rxpievMm671WVPetPR5Ai1509ZfW9609NeaNy1xrXnTEleSN7Xr+lHR/XRgF2AF8JLRhZS74o4F\n/gJ4yOTn0BH3UeBxwH8ClwF/kpn/WRD3/lHcdsC3qPLmx11xYz9/N9U2416F4/wg8BTgR6OmR2Xm\nVQVx2wF/AzyfKmdOycx3F8R9Gbj3qNn9gcsy87mFY30acCLVUaE/Ho11TUHc/lTfo7tRffZHZ+Yd\nTJjcznflTEtca860xLXmTEtca840xY29XpszLf19kJac6YhtzZuWuM68aYhrzZmWuM6cqZvjlcxr\nWmJL5jZ1cSVzm7q4km3UZnFjP2ub19T1dwLd85ra/grmNXX9dc5rWmJL5jZ1cSXbqM3m+EDSPR+u\ni9uT7pypizuE7pypi3sW3TnTuA/TljMtfT6T7ryp7bNjXlO730Q192ibYzbFraN9jtm6n9bxfdps\nPw3YnYLt06QhT6kgM5dn5sMy8yGZ+dbRa8dnVWwgM3+Wmc/PzIdm5r6ZeX3J742yW242+SBwwNRv\npvrivy4zHwH8LnBMYZ//AeyfmY8BHgscEBG/O0W/rwZWTz1aeGpmPjYLiw0jJwGfzcyHA48p6Tcr\njx2tTPcBfgqc0xUXEXsAfw48brQzuIyCglNEPJJqBbDvaIzPiYiHtoR8kM0/778CvpiZewNfHD0v\nifsm1crykin7+wLwyMx8NNWk7A2FcSdm5qNHy/Y8qhVLaZ8bd57+ALhxmjjgXRs/08mVa1NcRDyV\namPwmMz8TaqVV2dcZh4+lj9nAWcXjvNvgf85ijt+9Lwk7lTgrzLzUVR5elxNXNN3vStvmuK68qYp\nritvmuJK8qZxfdaRN23rwba8qY0ryJvauIK8aRpnV940xZXkTdO6/u2jZfNQ4IdUt4MuifsK8HTg\nuzV9tcV9FHg48CjgV6kmCyVxr8nMx4zy7Ubg2MI4IuJxwM5TjhPguLGcmdxxbIo7iupUzIdn5hzV\nxKczLjN/fyxnLqV+XdPU5ylUE/jHAh8D3lgQ90Squ3AdMdrGfZfqiM46k9v5rpxpiuvKmaa4rpxp\niuvKmaa4rpxpjKM9Z9pij6I9b2rjCvOmrr+unNksLiK2pzxnJud4JfOaptiSuU1dXMncpi6udG6z\n2Ty2YF5TG0f3vGazuMJ5zWZxhfOaprGWzG3q4kq2UXVz/JK8qYsryZm6uJKcqYsryZnafZjCnGna\n/+nKm83iuvKmZb+p9bNoiWv9LFriWpdNy35a6fZpE4MWHAZUcsvNWpl5CdXRFFPJzJsz88rR43+n\nSsY9CuI25F0V/18Z/Ss6bSQi9gSeTbUiGVRE3Bd4MtVRJ2Tmz3Oi6ljgacC3M7NrsrPRDsCvRnX9\njh2Bzf56X2MO+Hpm/jSrqv+XqL5otRo+7/HbsX4I2OyvFXVxmbk6M7NtcA1xn8+7/kLxNarKcEnc\neHX6njTkTUtOvwt4/QxxrRriXgW8LTP/Y9Tm1mn6G/316QXAxwvjNgD3GT2+LzW50xD3MO5aKX8B\nOLQmrum73po3TXFdedMS15o3LXGdedOxPmvMmy1YDzbFteZNV39NedMS15o3LXEledO0rt+f6rbP\nUJ83tXGZ+Y3MvGGyn4K45aOfbaD6a/Vk3jTF/RvcuUx/lYnPvylu9AeAE6lypnicTe+rIO5VwJsz\n85ejdpM509pfRNyH6jP51BR9duVNXdwvgJ9n5rdGr9fmzeR2frT8W3OmLm40jtacaYlrzZmWuNac\naYrrypmmuFINsa1509VnW940xHVuo2ridqEgZxp0zmualMxtGuI65zYNcUVzmwat85qedc5r2rTN\na1p05k2D1m1Uyxy/NW+a4rpypiWuNWda4lpzpmMfpjVnZt3/aYmbJm/G95um+Q7fGTfl93dyP63r\n+zS5n3YzBdunOou14LAHcNPY87UUTHr7EhEPAn4L+Hph+2URcRXVYUBfyMyiOOB/UyXCL6cc4gbg\n8xGxIiL+uDDmwVSHDX0gIr4REadGxD2n7PcIClesmbmOqup3I1UC/ygzP18Q+k3g9yNil4jYkeow\nq706YiY9IDNvHj1eT3X49Hx5GXBBaeOIeGtE3AS8iOa/AtTFHUx1iObV0w+RYyPimog4LSK6/gK1\n0cOoPpevR8SXIuJ3puzz94FbMvP/Frb/C+DE0bL5O5r/sjJpJXcVJ59PR+5MfNeL82badURBXGve\nTMZNkzfjsdPkTc1Yi/JmIq44bxqWTWfeTMQV581EXFHeTK7rqQ4Z/dexCVbttmrWbURbXET8CvAS\n4LOlcRHxAarcfjjw94VxxwLnjn03phnnW0c5866IuHth3EOAwyPiioi4ICL2nma5UE2Ovjgxge2K\nfTmwPCJhSr4aAAALMklEQVTWUi3TzU7hrPnsLwN2GP0lH6rrVNXlzeR2fhcKcqYmrlRjXFvONMV1\n5UxDXGfOtIyzNWdaYjvzpqVPaM+burjOnKmJu52ynKmb45Vun2aZH5bENW2jauMKtlGbxRVun5rG\n2bV9qosr2T61LZeu7VNdbMk2qi6uaxvVNMfvyptZ9w1K4upypjGuI2dq4wpzpm2sbXnTFDfNfHh8\nv2mafZPi/a2muK5lU7efRnUKRcn2aTOLteCwYCLiXlSHSP1F04RlUmb+IqtDWfYE9o3qtICufjae\ne75ihmH+Xmb+NtUpJ8dExJMLYnYAfpvqvMbfAn5C+yF5k+O9G3AQ8MnC9jtTrRwfDPwacM+IeHFX\nXGaupjqc5/NUk6KrqP6SNJPRX3Tm5UKlEfHXVIdsf7Q0JjP/OjP3GsU0Ha462c+OwH9nigLFmFOo\nJmaPpVrBvKMwbgfgflSHoR8HnBFVdb/UkUy38nwV1eG8ewGvYVRhLvAy4E8jYgXVebmN5521fdfb\n8maWdURbXFfe1MWV5s147KiPoryp6bMob2riivKmZZm25k1NXFHe1MQV5c3kup5qJ6zTLNuIgrh/\nBC7JzC+XxmXmS6nWx6uBwwvinkw1ua3b0ezq7w1Uy+d3qHLgvxXG3R34WVaHEv8TcNqUy6U1Zxpi\nXwM8KzP3BD4AvLMrDvhNqsnduyLiMu465/pOs27nB4yrzZm2uLacqYuLiF+jI2da+uvMmZbY1rwp\nWDa1edMS15ozdXGj7Uprzoy0zvE65jWzzA9b4zq2UbVxBduouriS7VNdXMn2qS6uZPvUtjy75jV1\nsSXbqLq4rm1U5xy/IW9m3TdojWvJmca4jpypizuBspxp6rMrb5riSuc1jftNHXPMqfa36uJK9hPq\n9tOY7ZIEwOItOJTccrN3UVX/zwI+mplt52TVyupQm4so+8CeBBwU1cVhTgf2j4iPFPazbvT/rVTn\n6exbELYWWDv2l6Azqb5IpQ4ErszMWwrbPx34TmbeltXFqc4GnlgSmJnvz8x9MvPJVOcPfasrZsIt\nEbE7wOj/qQ6Tm0VEHEV1AcMX5Wx3Yvko5YdWPoRqBXH1KH/2BK6MiAd2BWbmLaOJ8y+pJmUluQNV\n/pyd1WG5l1H9xWbXksCoDtU6hE0vatPlj7jrvMhPlo4zM6/LzD/IzH2oJgLfbhhT3Xe9M29mXUc0\nxXXlTUF/jXlTE1uUN3V9luRNw1g786Zl2bTmTUNcZ940vL+ivNlobF3/BGCn0VihY1s15TaiMS4i\n3gTsBrx2mrjRa7+g2uY0rm/G4p4KPBRYM8qZHaO6CHRnf1mdvrIhq8NOP0DLd3hinGu56zM8B3h0\n6fuLiF1H/ZzfFFMTeyDVubgbt42foGVbNfEeL83qGgD7Uh3uPLmt2mw7T3VOcFfOzDo/aIzryJnW\n/lpypu79raQ7Z2r7K8yZprF25U3bsmnLm7q48+nOmab32JUzTXO8onnNjPPDxriubVRBf7XbqJq4\np1Cwfarrr2T71DDOzu1Ty3LpnNc0xHZuoxreY9c2qmmO35U3s+4bNMZ15ExJf3U50xRXMheujS3I\nm6Y+S+fDk/tNpfsm0+5v1cWVzPfq9tOexBRzmnGLteBw5y03RxWbI6husTmYUXXq/cDqzNzsrxst\ncbtFdRVTIuJXgWcA13XFZeYbMnPPzHwQ1fu7MDM7jwCI6hCie298THUxkG8W9LceuCkiNl5Z92nA\nqq64MdP+hfpG4HcjYsfRsn0ahRfHjIj7j/7/daoV+sem6Bfuuh0ro/8/PWX8VKK6o8rrgYMy86dT\nxI0f8nkwBXkDkJnXZub9M/NBo/xZS7XyXF/Q5+5jT59HQe6MfIpq54OIeBjVFbZrr5Be4+nAdZm5\ntrA9VOc1PmX0eH+g6FSMsdzZnuoiXu+padP0XW/Nmy1YR9TGdeVNS1xn3tTFluRNS5+tedOybFrz\npmOZNuZNS1xr3rS8v5K8qVvXr6ba+Txs1Kwub2baRjTFRcTLqa6ufeRoolQSlzG6+O5oGRw0OYaG\nuBWZ+cCxnPlpVheSKhnnxonVdlSHq0/mTNNyuTNnqD7LbxXGQfU5nJcNd0Nq+QzvO8pPxl4reY8b\n8+buVH+N3yRvGrbzL6IjZ2adHzTFdeVMXRzwkq6caehv566caRlna850LJvWvOlYpo1507BsDqYj\nZ1reY2vOtMzxOuc1s84Pm+IKtlFNca3bqIa4ywu2T039dW2fmpZL1/apbXm2zmtaYru2UU3vsXUb\n1TLHb82bWfcNmuK6cqYlrjVnGuKuLJkLt/TZmjcty6Z0Pjy531S6bzLt/tZmcYX7CXX7aavo2D41\nGey2mEPKhltulsRGxMeB/YBdozq37k2ZWXI49pOozsO7NqrzNKHmFik1dgc+FNVFkrYHzsjM80rG\nOqMHAOeM8n8H4GOZWXc+Zp0/Az4aVRHneqrbn3QarfSeAfxJ6SAz8+sRcSZwJdVhVd8A3lcYflZE\n7EJ1C69jsuXiLnWfN9W5lGdExNFUV4F+QWHcD6gOA90NOD8irsrMZxbEvYHqcM4vjD6Xr2XmKwvi\nnjVakf1yNM5NYtpiS3K6oc/9orot0waq2/Js9pk2xJ0GnBYR36Q6lO+PcqJy3TLO1nPRGvp7BXBS\nVFXWnwGbnVPaEHeviDhm1ORsqr+STar9rtOdN01xd6c9b5ri3k173jTFHV2QN7Ouz5r6PLIjb5ri\nuvKmbZxtedPUX1feNMXtXZA3tev6iFgFnB4Rf0O1npv8bjbF/TnVxOyBwDURsTwzX14QdwfV537p\nKG/Ozsw3t8VR/eX2y1FdGG874GqqQ3s7x1mzHEqXy4URsduov6vYPE+b4v4P1XbqNVS3G5y8o0Lb\nOI+g/lz6rj5fQbXd+SXVUXUvK4w7MapD57enOuz2wu7FBVQ7mm05U6sgZ5q8h/acqbMd1Xtuy5m+\nfbQjZ9q8jfa8adOVN5sYzVG7cqbJcR05UzvHi4jL6ZjXtMQ+j/ZtVFPcGtq3UU1xZ3Vso2adxzb1\n9+GO7VNT3N1o3z61jbPrHPumPn9M+zaqKe7VBduoujn+9nTnzWZxBTnT1N/ldMyHG+JOLZjXzLQP\n0xL77q75cEPcT+ieD9ftN5Xsm2wWV/JZNPTXqmU/7Xxm2D5tt2HDvJy+LkmSJEmStiGL9ZQKSZIk\nSZK0FbPgIEmSJEmSemfBQZIkSZIk9c6CgyRJkiRJ6p0FB0mSJEmS1DsLDpIkqVcR8dyI2BARD1/o\nsUiSpIVjwUGSJPXtSOD/jP6XJEnbqB0WegCSJGnpiIh7Ab8HPBX4DPCmiNge+Adgf+Am4D+B0zLz\nzIjYB3gncC/gduCozLx5QQYvSZJ65REOkiSpTwcDn83MbwHfHxUUDgEeBDwCeAnwBICI+BXg74HD\nMnMf4DTgrQsxaEmS1D+PcJAkSX06Ejhp9Pj00fMdgE9m5i+B9RFx0ejnATwS+EJEACwDPLpBkqQl\nwoKDJEnqRUTcj+q0iUdFxAaqAsIG4JyGkO2AlZn5hHkaoiRJmkeeUiFJkvpyGPDhzPyNzHxQZu4F\nfAf4AXBoRGwfEQ8A9hu1T2C3iLjzFIuI+M2FGLgkSeqfBQdJktSXI9n8aIazgAcCa4FVwEeAK4Ef\nZebPqYoUb4+Iq4GrgCfO33AlSdKQttuwYcNCj0GSJC1xEXGvzPxxROwCXAY8KTPXL/S4JEnScLyG\ngyRJmg/nRcROwN2At1hskCRp6fMIB0mSJEmS1Duv4SBJkiRJknpnwUGSJEmSJPXOgoMkSZIkSeqd\nBQdJkiRJktQ7Cw6SJEmSJKl3FhwkSZIkSVLv/j/Bb22Miw/QngAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x831d790>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# .... continue with plot Age column\n",
    "\n",
    "# peaks for survived/not survived passengers by their age\n",
    "facet = sns.FacetGrid(titanic_df, hue=\"Survived\",aspect=4)\n",
    "facet.map(sns.kdeplot,'Age',shade= True)\n",
    "facet.set(xlim=(0, titanic_df['Age'].max()))\n",
    "facet.add_legend()\n",
    "\n",
    "# average survived passengers by age\n",
    "fig, axis1 = plt.subplots(1,1,figsize=(18,4))\n",
    "average_age = titanic_df[[\"Age\", \"Survived\"]].groupby(['Age'],as_index=False).mean()\n",
    "sns.barplot(x='Age', y='Survived', data=average_age)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Cabin\n",
    "- 乘客住在哪个船舱\n",
    "- 缺失值太多信息量太少，删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "titanic_df.drop(\"Cabin\",axis=1,inplace=True)\n",
    "test_df.drop(\"Cabin\",axis=1,inplace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. Family\n",
    "- SibSp：船上兄弟姐妹和配偶的数量\n",
    "- Parch：船上父母和孩子的数量\n",
    "- Family = SibSp+Parch，表示家人的数量\n",
    "- 家里成员越多，将会对是否能活下来有影响\n",
    "- 删除SibSp和Parch列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/lib64/python2.7/site-packages/pandas/core/indexing.py:179: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  self._setitem_with_indexer(indexer, value)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.text.Text at 0x89cf310>, <matplotlib.text.Text at 0x89c4250>]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x8b3c690>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "titanic_df['Family'] =  titanic_df[\"Parch\"] + titanic_df[\"SibSp\"]\n",
    "titanic_df['Family'].loc[titanic_df['Family'] > 0] = 1\n",
    "titanic_df['Family'].loc[titanic_df['Family'] == 0] = 0\n",
    "\n",
    "test_df['Family'] =  test_df[\"Parch\"] + test_df[\"SibSp\"]\n",
    "test_df['Family'].loc[test_df['Family'] > 0] = 1\n",
    "test_df['Family'].loc[test_df['Family'] == 0] = 0\n",
    "\n",
    "# drop Parch & SibSp\n",
    "titanic_df = titanic_df.drop(['SibSp','Parch'], axis=1)\n",
    "test_df    = test_df.drop(['SibSp','Parch'], axis=1)\n",
    "\n",
    "# plot\n",
    "fig, (axis1,axis2) = plt.subplots(1,2,sharex=True,figsize=(10,5))\n",
    "\n",
    "# sns.factorplot('Family',data=titanic_df,kind='count',ax=axis1)\n",
    "sns.countplot(x='Family', data=titanic_df, order=[1,0], ax=axis1)\n",
    "\n",
    "# average of survived for those who had/didn't have any family member\n",
    "family_perc = titanic_df[[\"Family\", \"Survived\"]].groupby(['Family'],as_index=False).mean()\n",
    "sns.barplot(x='Family', y='Survived', data=family_perc, order=[1,0], ax=axis2)\n",
    "\n",
    "axis1.set_xticklabels([\"With Family\",\"Alone\"], rotation=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6. Sex\n",
    "- 性别\n",
    "- 可以看到小于16岁的小孩存活率很高，所以分成小孩、女人和男人，为Person属性，同时删除Male女性特征，因为存活率很低"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nHzaX4nhhAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x8fb1550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def get_person(passenger):\n",
    "    age,sex = passenger\n",
    "    return 'child' if age < 16 else sex\n",
    "    \n",
    "titanic_df['Person'] = titanic_df[['Age','Sex']].apply(get_person,axis=1)\n",
    "test_df['Person']    = test_df[['Age','Sex']].apply(get_person,axis=1)\n",
    "\n",
    "# No need to use Sex column since we created Person column\n",
    "titanic_df.drop(['Sex'],axis=1,inplace=True)\n",
    "test_df.drop(['Sex'],axis=1,inplace=True)\n",
    "\n",
    "# create dummy variables for Person column, & drop Male as it has the lowest average of survived passengers\n",
    "person_dummies_titanic  = pd.get_dummies(titanic_df['Person'])\n",
    "person_dummies_titanic.columns = ['Child','Female','Male']\n",
    "person_dummies_titanic.drop(['Male'], axis=1, inplace=True)\n",
    "\n",
    "person_dummies_test  = pd.get_dummies(test_df['Person'])\n",
    "person_dummies_test.columns = ['Child','Female','Male']\n",
    "person_dummies_test.drop(['Male'], axis=1, inplace=True)\n",
    "\n",
    "titanic_df = titanic_df.join(person_dummies_titanic)\n",
    "test_df    = test_df.join(person_dummies_test)\n",
    "\n",
    "fig, (axis1,axis2) = plt.subplots(1,2,figsize=(10,5))\n",
    "\n",
    "# sns.factorplot('Person',data=titanic_df,kind='count',ax=axis1)\n",
    "sns.countplot(x='Person', data=titanic_df, ax=axis1)\n",
    "\n",
    "# average of survived for each Person(male, female, or child)\n",
    "person_perc = titanic_df[[\"Person\", \"Survived\"]].groupby(['Person'],as_index=False).mean()\n",
    "sns.barplot(x='Person', y='Survived', data=person_perc, ax=axis2, order=['male','female','child'])\n",
    "\n",
    "titanic_df.drop(['Person'],axis=1,inplace=True)\n",
    "test_df.drop(['Person'],axis=1,inplace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 7. Pclass\n",
    "- 标记乘客所属船层——第一层(1),第二层(2),第三层(3)\n",
    "- 第3层的人存活率很低，删掉"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x8b54bd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.factorplot('Pclass','Survived',order=[1,2,3], data=titanic_df,size=5)\n",
    "\n",
    "# create dummy variables for Pclass column, & drop 3rd class as it has the lowest average of survived passengers\n",
    "pclass_dummies_titanic  = pd.get_dummies(titanic_df['Pclass'])\n",
    "pclass_dummies_titanic.columns = ['Class_1','Class_2','Class_3']\n",
    "pclass_dummies_titanic.drop(['Class_3'], axis=1, inplace=True)\n",
    "\n",
    "pclass_dummies_test  = pd.get_dummies(test_df['Pclass'])\n",
    "pclass_dummies_test.columns = ['Class_1','Class_2','Class_3']\n",
    "pclass_dummies_test.drop(['Class_3'], axis=1, inplace=True)\n",
    "\n",
    "titanic_df.drop(['Pclass'],axis=1,inplace=True)\n",
    "test_df.drop(['Pclass'],axis=1,inplace=True)\n",
    "\n",
    "titanic_df = titanic_df.join(pclass_dummies_titanic)\n",
    "test_df    = test_df.join(pclass_dummies_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 构造训练集的输入输出，和测试集的输入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train = titanic_df.drop(\"Survived\",axis=1)\n",
    "Y_train = titanic_df[\"Survived\"]\n",
    "X_test  = test_df.drop(\"PassengerId\",axis=1).copy()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 用各种方法进行分类\n",
    "- 用训练集训练和评价\n",
    "\n",
    "## 1. Logistic Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.81032547699214363"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "logreg = LogisticRegression()\n",
    "logreg.fit(X_train, Y_train)\n",
    "Y_pred = logreg.predict(X_test)\n",
    "logreg.score(X_train, Y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Support Vector Machines"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.86083052749719413"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc = SVC()\n",
    "svc.fit(X_train, Y_train)\n",
    "Y_pred = svc.predict(X_test)\n",
    "svc.score(X_train, Y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Random Forests"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.96745230078563416"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "random_forest = RandomForestClassifier(n_estimators=100)\n",
    "random_forest.fit(X_train, Y_train)\n",
    "Y_pred = random_forest.predict(X_test)\n",
    "random_forest.score(X_train, Y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. KNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.82267115600448937"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn = KNeighborsClassifier(n_neighbors = 3)\n",
    "knn.fit(X_train, Y_train)\n",
    "Y_pred = knn.predict(X_test)\n",
    "knn.score(X_train, Y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. Gaussian Naive Bayes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.76094276094276092"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gaussian = GaussianNB()\n",
    "gaussian.fit(X_train, Y_train)\n",
    "Y_pred = gaussian.predict(X_test)\n",
    "gaussian.score(X_train, Y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Logistic Regression的各特征相关系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Features</th>\n",
       "      <th>Coefficient Estimate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Age</td>\n",
       "      <td>-0.024943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Fare</td>\n",
       "      <td>0.000743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>C</td>\n",
       "      <td>0.593455</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Q</td>\n",
       "      <td>0.211935</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Family</td>\n",
       "      <td>-0.186460</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Child</td>\n",
       "      <td>1.632447</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Female</td>\n",
       "      <td>2.759881</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Class_1</td>\n",
       "      <td>2.018449</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Class_2</td>\n",
       "      <td>1.112331</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Features  Coefficient Estimate\n",
       "0      Age             -0.024943\n",
       "1     Fare              0.000743\n",
       "2        C              0.593455\n",
       "3        Q              0.211935\n",
       "4   Family             -0.186460\n",
       "5    Child              1.632447\n",
       "6   Female              2.759881\n",
       "7  Class_1              2.018449\n",
       "8  Class_2              1.112331"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "coeff_df = DataFrame(titanic_df.columns.delete(0))\n",
    "coeff_df.columns = ['Features']\n",
    "coeff_df[\"Coefficient Estimate\"] = pd.Series(logreg.coef_[0])\n",
    "\n",
    "# preview\n",
    "coeff_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 生成结果数据文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "ename": "IOError",
     "evalue": "[Errno 2] No such file or directory: 'Data/titanic.csv'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mIOError\u001b[0m                                   Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-20-4629386bc624>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      3\u001b[0m         \u001b[0;34m\"Survived\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mY_pred\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m     })\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0msubmission\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Data/titanic.csv'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m/usr/lib64/python2.7/site-packages/pandas/core/frame.pyc\u001b[0m in \u001b[0;36mto_csv\u001b[0;34m(self, path_or_buf, sep, na_rep, float_format, columns, header, index, index_label, mode, encoding, compression, quoting, quotechar, line_terminator, chunksize, tupleize_cols, date_format, doublequote, escapechar, decimal)\u001b[0m\n\u001b[1;32m   1401\u001b[0m                                      \u001b[0mdoublequote\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdoublequote\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1402\u001b[0m                                      escapechar=escapechar, decimal=decimal)\n\u001b[0;32m-> 1403\u001b[0;31m         \u001b[0mformatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1404\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1405\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mpath_or_buf\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python2.7/site-packages/pandas/io/formats/format.pyc\u001b[0m in \u001b[0;36msave\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m   1575\u001b[0m             f, handles = _get_handle(self.path_or_buf, self.mode,\n\u001b[1;32m   1576\u001b[0m                                      \u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1577\u001b[0;31m                                      compression=self.compression)\n\u001b[0m\u001b[1;32m   1578\u001b[0m             \u001b[0mclose\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1579\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python2.7/site-packages/pandas/io/common.pyc\u001b[0m in \u001b[0;36m_get_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text)\u001b[0m\n\u001b[1;32m    377\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mcompat\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPY2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    378\u001b[0m             \u001b[0;31m# Python 2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 379\u001b[0;31m             \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath_or_buf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    380\u001b[0m         \u001b[0;32melif\u001b[0m \u001b[0mencoding\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    381\u001b[0m             \u001b[0;31m# Python 3 and encoding\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mIOError\u001b[0m: [Errno 2] No such file or directory: 'Data/titanic.csv'"
     ]
    }
   ],
   "source": [
    "submission = pd.DataFrame({\n",
    "        \"PassengerId\": test_df[\"PassengerId\"],\n",
    "        \"Survived\": Y_pred\n",
    "    })\n",
    "submission.to_csv('../input/titanic.csv', index=False)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
